Skip to content

Commit 4192511

Browse files
authored
Merge pull request #19 from AOEpeople/update-machine-flavor
Update machine flavor & validation regex
2 parents 791710a + dd18768 commit 4192511

32 files changed

+80
-80
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ kubectl apply -f samples/machine.yaml
103103

104104
| Field | Type | Required | Description |
105105
|-------|------|----------|-------------|
106-
| `machineType` | string | Yes | STACKIT server type (e.g., "c1.2", "m1.4") |
106+
| `machineType` | string | Yes | STACKIT server type (e.g., "c2i.2", "m2i.8") |
107107
| `imageId` | string | Yes | UUID of the OS image |
108108
| `labels` | map[string]string | No | Labels for server identification |
109109
| `networking` | NetworkingSpec | No | Network configuration (NetworkID or NICIDs) |

docs/stackit-iaas-api-analysis.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Additional endpoints available (may be useful for future enhancements):
5050

5151
### Required Fields
5252
- **`name`** (string) - Server name (MCM will use Machine CR name)
53-
- **`machineType`** (string) - Machine/instance type (e.g., "c1.2", "m1.4")
53+
- **`machineType`** (string) - Machine/instance type (e.g., "c2i.2", "m2i.8")
5454

5555
### Optional Fields
5656

@@ -136,7 +136,7 @@ Based on the API analysis, our ProviderSpec should include:
136136
```go
137137
type ProviderSpec struct {
138138
// Required fields
139-
MachineType string `json:"machineType"` // e.g., "c1.2", "m1.4"
139+
MachineType string `json:"machineType"` // e.g., "c2i.2", "m2i.8"
140140

141141
// Compute configuration
142142
ImageID string `json:"imageId"` // OS image UUID

pkg/provider/apis/provider_spec.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ package api
66

77
// ProviderSpec is the spec to be used while parsing the calls.
88
type ProviderSpec struct {
9-
// MachineType is the STACKIT server type (e.g., "c1.2", "m1.4")
9+
// MachineType is the STACKIT server type (e.g., "c2i.2", "m2i.8")
1010
// Required field for creating a server.
1111
MachineType string `json:"machineType"`
1212

pkg/provider/apis/validation/validation.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ var keypairNameRegex = regexp.MustCompile(`^[A-Za-z0-9@._-]*$`)
2525
var emailRegex = regexp.MustCompile(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)
2626

2727
// machineTypeRegex is a regex pattern for validating machine type format
28-
// Pattern: lowercase letter(s) followed by digits, dot, then more digits (e.g., c1.2, m1.4, g1a.8)
29-
var machineTypeRegex = regexp.MustCompile(`^[a-z]+\d+\.\d+$`)
28+
// Pattern: lowercase letter(s) followed by digits, dot, then more digits (e.g., c2i.2, m2i.8, g1a.8)
29+
var machineTypeRegex = regexp.MustCompile(`^[a-z]+\d+[a-z]*\.\d+[a-z]*(\.[a-z]+\d+)*$`)
3030

3131
// labelKeyRegex validates Kubernetes label keys (must start/end with alphanumeric, can contain -, _, .)
3232
// Maximum length: 63 characters
@@ -67,7 +67,7 @@ func ValidateProviderSpecNSecret(spec *api.ProviderSpec, secrets *corev1.Secret)
6767
if spec.MachineType == "" {
6868
errors = append(errors, fmt.Errorf("providerSpec.machineType is required"))
6969
} else if !isValidMachineType(spec.MachineType) {
70-
errors = append(errors, fmt.Errorf("providerSpec.machineType has invalid format (expected format: c1.2, m1.4, etc.)"))
70+
errors = append(errors, fmt.Errorf("providerSpec.machineType has invalid format (expected format: c2i.2, m2i.8, etc.)"))
7171
}
7272

7373
// ImageID is required unless BootVolume.Source is specified

pkg/provider/apis/validation/validation_core_labels_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{
@@ -53,7 +53,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
5353
})
5454

5555
It("should succeed when MachineType has valid format", func() {
56-
providerSpec.MachineType = "c1.2"
56+
providerSpec.MachineType = "c2i.2"
5757
errors := ValidateProviderSpecNSecret(providerSpec, secret)
5858
Expect(errors).To(BeEmpty())
5959
})
@@ -103,8 +103,8 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
103103
It("should succeed with label keys containing allowed characters", func() {
104104
providerSpec.Labels = map[string]string{
105105
"app.kubernetes.io_component": "worker",
106-
"environment-type": "prod",
107-
"version": "v1.2.3",
106+
"environment-type": "prod",
107+
"version": "v1.2.3",
108108
}
109109
errors := ValidateProviderSpecNSecret(providerSpec, secret)
110110
Expect(errors).To(BeEmpty())

pkg/provider/apis/validation/validation_fields_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{

pkg/provider/apis/validation/validation_networking_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{

pkg/provider/apis/validation/validation_secgroup_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{

pkg/provider/apis/validation/validation_secret_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{

pkg/provider/apis/validation/validation_volumes_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var _ = Describe("ValidateProviderSpecNSecret", func() {
2121
BeforeEach(func() {
2222
// Set up valid defaults
2323
providerSpec = &api.ProviderSpec{
24-
MachineType: "c1.2",
24+
MachineType: "c2i.2",
2525
ImageID: "550e8400-e29b-41d4-a716-446655440000",
2626
}
2727
secret = &corev1.Secret{

0 commit comments

Comments
 (0)