Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions cmd/mapt/cmd/aws/services/kind.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"github.com/redhat-developer/mapt/cmd/mapt/cmd/params"
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
"github.com/redhat-developer/mapt/pkg/provider/aws/action/kind"
kindCloudConfig "github.com/redhat-developer/mapt/pkg/provider/util/cloud-config/kind"
kindApi "github.com/redhat-developer/mapt/pkg/targets/service/kind"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/spf13/viper"
Expand Down Expand Up @@ -41,11 +41,11 @@ func createKind() *cobra.Command {
}

// Parse extra port mappings from JSON string to PortMapping struct
var extraPortMappings []kindCloudConfig.PortMapping
var extraPortMappings []kindApi.PortMapping
extraPortMappingsStr := viper.GetString(params.KindExtraPortMappings)
if extraPortMappingsStr != "" {
var err error
extraPortMappings, err = kindCloudConfig.ParseExtraPortMappings(extraPortMappingsStr)
extraPortMappings, err = kindApi.ParseExtraPortMappings(extraPortMappingsStr)
if err != nil {
return fmt.Errorf("failed to parse 'extra-port-mappings' flag: %w", err)
}
Expand All @@ -60,7 +60,7 @@ func createKind() *cobra.Command {
DebugLevel: viper.GetUint(params.DebugLevel),
Tags: viper.GetStringMapString(params.Tags),
},
&kind.KindArgs{
&kindApi.KindArgs{
ComputeRequest: params.ComputeRequestArgs(),
Spot: params.SpotArgs(),
Version: viper.GetString(params.KindK8SVersion),
Expand All @@ -74,7 +74,7 @@ func createKind() *cobra.Command {
}
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
flagSet.StringP(params.KindK8SVersion, "", "", params.KindK8SVersionDesc)
flagSet.StringP(params.KindK8SVersion, "", params.KindK8SVersionDefault, params.KindK8SVersionDesc)
flagSet.StringP(params.LinuxArch, "", params.LinuxArchDefault, params.LinuxArchDesc)
flagSet.StringP(params.KindExtraPortMappings, "", "", params.KindExtraPortMappingsDesc)
flagSet.StringP(params.Timeout, "", "", params.TimeoutDesc)
Expand Down
3 changes: 2 additions & 1 deletion cmd/mapt/cmd/azure/azure.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func GetCmd() *cobra.Command {
hosts.GetUbuntuCmd(),
hosts.GetRHELCmd(),
hosts.GetFedoraCmd(),
services.GetAKSCmd())
services.GetAKSCmd(),
services.GetKindCmd())
return c
}
3 changes: 0 additions & 3 deletions cmd/mapt/cmd/azure/hosts/constants.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package hosts

const (
paramLocation = "location"
paramLocationDesc = "If spot is passed location will be calculated based on spot results. Otherwise localtion will be used to create resources."
defaultLocation = "westeurope"
paramVMSize = "vmsize"
paramVMSizeDesc = "set specific size for the VM and ignore any CPUs, Memory and Arch parameters set. Type requires to allow nested virtualization"
paramUsername = "username"
Expand Down
5 changes: 3 additions & 2 deletions cmd/mapt/cmd/azure/hosts/linux.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package hosts

import (
azureParams "github.com/redhat-developer/mapt/cmd/mapt/cmd/azure/params"
"github.com/redhat-developer/mapt/cmd/mapt/cmd/params"
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
azureLinux "github.com/redhat-developer/mapt/pkg/provider/azure/action/linux"
Expand Down Expand Up @@ -61,7 +62,7 @@ func getCreateLinux(ostype data.OSType, defaultOSVersion string) *cobra.Command
&azureLinux.LinuxArgs{
ComputeRequest: params.ComputeRequestArgs(),
Spot: params.SpotArgs(),
Location: viper.GetString(paramLocation),
Location: viper.GetString(azureParams.Location),
Version: viper.GetString(paramLinuxVersion),
Arch: viper.GetString(params.LinuxArch),
OSType: ostype,
Expand All @@ -71,7 +72,7 @@ func getCreateLinux(ostype data.OSType, defaultOSVersion string) *cobra.Command
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
flagSet.StringToStringP(params.Tags, "", nil, params.TagsDesc)
flagSet.StringP(paramLocation, "", defaultLocation, paramLocationDesc)
flagSet.StringP(azureParams.Location, "", azureParams.LocationDefault, azureParams.LocationDesc)
flagSet.StringP(params.LinuxArch, "", params.LinuxArchDefault, params.LinuxArchDesc)
flagSet.StringP(paramLinuxVersion, "", defaultOSVersion, paramLinuxVersionDesc)
flagSet.StringP(paramUsername, "", defaultUsername, paramUsernameDesc)
Expand Down
5 changes: 3 additions & 2 deletions cmd/mapt/cmd/azure/hosts/rhel.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package hosts

import (
azureParams "github.com/redhat-developer/mapt/cmd/mapt/cmd/azure/params"
"github.com/redhat-developer/mapt/cmd/mapt/cmd/params"
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
azureRHEL "github.com/redhat-developer/mapt/pkg/provider/azure/action/rhel"
Expand Down Expand Up @@ -52,7 +53,7 @@ func getCreateRHEL() *cobra.Command {
&azureRHEL.RhelArgs{
ComputeRequest: params.ComputeRequestArgs(),
Spot: params.SpotArgs(),
Location: viper.GetString(paramLocation),
Location: viper.GetString(azureParams.Location),
Version: viper.GetString(paramLinuxVersion),
Arch: viper.GetString(params.LinuxArch),
SubsUsername: viper.GetString(params.SubsUsername),
Expand All @@ -64,7 +65,7 @@ func getCreateRHEL() *cobra.Command {
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
flagSet.StringToStringP(params.Tags, "", nil, params.TagsDesc)
flagSet.StringP(paramLocation, "", defaultLocation, paramLocationDesc)
flagSet.StringP(azureParams.Location, "", azureParams.LocationDefault, azureParams.LocationDesc)
flagSet.StringP(params.LinuxArch, "", params.LinuxArchDefault, params.LinuxArchDesc)
flagSet.StringP(paramLinuxVersion, "", defaultRHELVersion, paramLinuxVersionDesc)
flagSet.StringP(paramUsername, "", defaultUsername, paramUsernameDesc)
Expand Down
5 changes: 3 additions & 2 deletions cmd/mapt/cmd/azure/hosts/windows.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package hosts

import (
azureParams "github.com/redhat-developer/mapt/cmd/mapt/cmd/azure/params"
"github.com/redhat-developer/mapt/cmd/mapt/cmd/params"
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
azureWindows "github.com/redhat-developer/mapt/pkg/provider/azure/action/windows"
Expand Down Expand Up @@ -66,7 +67,7 @@ func getCreateWindowsDesktop() *cobra.Command {
ComputeRequest: params.ComputeRequestArgs(),
Spot: params.SpotArgs(),
Prefix: viper.GetString(params.ProjectName),
Location: viper.GetString(paramLocation),
Location: viper.GetString(azureParams.Location),
Version: viper.GetString(paramWindowsVersion),
Feature: viper.GetString(paramFeature),
Username: viper.GetString(paramUsername),
Expand All @@ -77,7 +78,7 @@ func getCreateWindowsDesktop() *cobra.Command {
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
flagSet.StringToStringP(params.Tags, "", nil, params.TagsDesc)
flagSet.StringP(paramLocation, "", defaultLocation, paramLocationDesc)
flagSet.StringP(azureParams.Location, "", azureParams.LocationDefault, azureParams.LocationDesc)
flagSet.StringP(paramWindowsVersion, "", defaultWindowsVersion, paramWindowsVersionDesc)
flagSet.StringP(paramFeature, "", defaultFeature, paramFeatureDesc)
flagSet.StringP(paramUsername, "", defaultUsername, paramUsernameDesc)
Expand Down
7 changes: 7 additions & 0 deletions cmd/mapt/cmd/azure/params/params.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package params

const (
Location = "location"
LocationDesc = "If spot is passed location will be calculated based on spot results. Otherwise localtion will be used to create resources."
LocationDefault = "westeurope"
)
112 changes: 112 additions & 0 deletions cmd/mapt/cmd/azure/services/kind.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package services

import (
"fmt"

azureParams "github.com/redhat-developer/mapt/cmd/mapt/cmd/azure/params"
"github.com/redhat-developer/mapt/cmd/mapt/cmd/params"
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
"github.com/redhat-developer/mapt/pkg/provider/azure/action/kind"
kindApi "github.com/redhat-developer/mapt/pkg/targets/service/kind"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)

func GetKindCmd() *cobra.Command {
c := &cobra.Command{
Use: params.KindCmd,
Short: params.KindCmdDesc,
RunE: func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.Flags()); err != nil {
return err
}
return nil
},
}
flagSet := pflag.NewFlagSet(params.KindCmd, pflag.ExitOnError)
params.AddCommonFlags(flagSet)
c.PersistentFlags().AddFlagSet(flagSet)
c.AddCommand(createKind(), destroyKind())
return c

}

func createKind() *cobra.Command {
c := &cobra.Command{
Use: params.CreateCmdName,
Short: params.CreateCmdName,
RunE: func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.Flags()); err != nil {
return err
}

// Parse extra port mappings from JSON string to PortMapping struct
var extraPortMappings []kindApi.PortMapping
extraPortMappingsStr := viper.GetString(params.KindExtraPortMappings)
if extraPortMappingsStr != "" {
var err error
extraPortMappings, err = kindApi.ParseExtraPortMappings(extraPortMappingsStr)
if err != nil {
return fmt.Errorf("failed to parse 'extra-port-mappings' flag: %w", err)
}
}

if _, err := kind.Create(
&maptContext.ContextArgs{
ProjectName: viper.GetString(params.ProjectName),
BackedURL: viper.GetString(params.BackedURL),
ResultsOutput: viper.GetString(params.ConnectionDetailsOutput),
Debug: viper.IsSet(params.Debug),
DebugLevel: viper.GetUint(params.DebugLevel),
Tags: viper.GetStringMapString(params.Tags),
},
&kindApi.KindArgs{
ComputeRequest: params.ComputeRequestArgs(),
Spot: params.SpotArgs(),
HostingPlace: viper.GetString(azureParams.Location),
Version: viper.GetString(params.KindK8SVersion),
Arch: viper.GetString(params.LinuxArch),
ExtraPortMappings: extraPortMappings}); err != nil {
return err
}
return nil
},
}
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
flagSet.StringP(params.KindK8SVersion, "", params.KindK8SVersionDefault, params.KindK8SVersionDesc)
flagSet.StringP(params.LinuxArch, "", params.LinuxArchDefault, params.LinuxArchDesc)
flagSet.StringP(params.KindExtraPortMappings, "", "", params.KindExtraPortMappingsDesc)
flagSet.StringP(azureParams.Location, "", azureParams.LocationDefault, azureParams.LocationDesc)
flagSet.StringToStringP(params.Tags, "", nil, params.TagsDesc)
params.AddComputeRequestFlags(flagSet)
params.AddSpotFlags(flagSet)
c.PersistentFlags().AddFlagSet(flagSet)
return c
}

func destroyKind() *cobra.Command {
c := &cobra.Command{
Use: params.DestroyCmdName,
Short: params.DestroyCmdName,
RunE: func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.Flags()); err != nil {
return err
}
return kind.Destroy(&maptContext.ContextArgs{
ProjectName: viper.GetString(params.ProjectName),
BackedURL: viper.GetString(params.BackedURL),
Debug: viper.IsSet(params.Debug),
DebugLevel: viper.GetUint(params.DebugLevel),
Serverless: viper.IsSet(params.Serverless),
ForceDestroy: viper.IsSet(params.ForceDestroy),
})
},
}
flagSet := pflag.NewFlagSet(params.DestroyCmdName, pflag.ExitOnError)
flagSet.Bool(params.Serverless, false, params.ServerlessDesc)
flagSet.Bool(params.ForceDestroy, false, params.ForceDestroyDesc)
c.PersistentFlags().AddFlagSet(flagSet)
return c
}
1 change: 1 addition & 0 deletions cmd/mapt/cmd/params/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ const (
KindCmdDesc = "Manage a Kind cluster. This is not intended for production use"
KindK8SVersion = "version"
KindK8SVersionDesc = "version for k8s offered through Kind."
KindK8SVersionDefault = "v1.34"
KindExtraPortMappings = "extra-port-mappings"
KindExtraPortMappingsDesc = "Additional port mappings for the Kind cluster. Value should be a JSON array of objects with containerPort, hostPort, and protocol properties. Example: '[{\"containerPort\": 8080, \"hostPort\": 8080, \"protocol\": \"TCP\"}]'"

Expand Down
3 changes: 3 additions & 0 deletions docs/azure/kind.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Overview

TBC
4 changes: 3 additions & 1 deletion pkg/manager/context/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,9 @@ func Init(ca *ContextArgs, provider Provider) (*Context, error) {
if err != nil {
return nil, err
}
c.targetHostingPlace = *hp
if hp != nil {
c.targetHostingPlace = *hp
}
// Manage
if err := provider.Init(ca.BackedURL); err != nil {
return nil, err
Expand Down
5 changes: 5 additions & 0 deletions pkg/provider/api/config/userdata/userdata.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package userdata

type CloudConfig interface {
CloudConfig() (*string, error)
}
28 changes: 0 additions & 28 deletions pkg/provider/aws/action/kind/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ package kind
import "fmt"

var (
stackName = "stackKind"
awsKindID = "akd"

diskSize int = 200

// Official AMIs from Fedora use aarch64 format for arm64
Expand All @@ -17,31 +14,6 @@ var (
amiOwner = "125523088429"
amiUserDefault = "fedora"
amiProduct = "Linux/UNIX"

outputHost = "akdHost"
outputUsername = "akdUsername"
outputUserPrivateKey = "akdPrivatekey"
outputKubeconfig = "akdKubeconfig"
)

// TODO do some code to get this info from kind source code
type kindK8SImages struct {
kindVersion string
KindImage string
}

var KindK8sVersions map[string]kindK8SImages = map[string]kindK8SImages{
"v1.33": {"v0.29.0", "kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f"},
"v1.32": {"v0.29.0", "kindest/node:v1.32.5@sha256:e3b2327e3a5ab8c76f5ece68936e4cafaa82edf58486b769727ab0b3b97a5b0d"},
"v1.31": {"v0.29.0", "kindest/node:v1.31.9@sha256:b94a3a6c06198d17f59cca8c6f486236fa05e2fb359cbd75dabbfc348a10b211"},
"v1.30": {"v0.29.0", "kindest/node:v1.30.13@sha256:397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648"},
}

// TODO check if allow customize this, specially ingress related ports
var (
portHTTP = 8888
portHTTPS = 9443
portAPI = 6443
)

// TODO check latest stable Fedora version
Expand Down
Loading