Skip to content

Commit

Permalink
Adding support for kind
Browse files Browse the repository at this point in the history
Adjusting providertypes to lowercase
  • Loading branch information
rogerwesterbo committed Feb 22, 2024
1 parent a83fbe2 commit d2ab104
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 36 deletions.
39 changes: 20 additions & 19 deletions pkg/apicontracts/apicontracts.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"time"

identitymodels "github.com/NorskHelsenett/ror/pkg/models/identity"
"github.com/NorskHelsenett/ror/pkg/models/providers"

"go.mongodb.org/mongo-driver/bson/primitive"
)
Expand Down Expand Up @@ -66,21 +67,21 @@ type ClusterMetadataModel struct {
}

type AgentApiKeyModel struct {
Identifier string `json:"identifier" validate:"required,min=1,ne=' ',max=100"`
DatacenterName string `json:"datacenterName" validate:"required,min=1,ne=' '"`
WorkspaceName string `json:"workspaceName" validate:"required,min=1,ne=' '"`
Provider string `json:"provider" validate:"required,min=1,ne=' ',max=20"`
Type ApiKeyType `json:"type" validate:"required,min=1,ne='',eq=Cluster"`
Identifier string `json:"identifier" validate:"required,min=1,ne=' ',max=100"`
DatacenterName string `json:"datacenterName" validate:"required,min=1,ne=' '"`
WorkspaceName string `json:"workspaceName" validate:"required,min=1,ne=' '"`
Provider providers.ProviderType `json:"provider" validate:"required,min=1,ne=' ',max=20"`
Type ApiKeyType `json:"type" validate:"required,min=1,ne='',eq=Cluster"`
}

/// Domain object

type Datacenter struct {
ID string `json:"id" bson:"_id,omitempty"`
Name string `json:"name"`
Provider string `json:"provider"`
Location DatacenterLocation `json:"location"`
APIEndpoint string `json:"apiEndpoint"`
ID string `json:"id" bson:"_id,omitempty"`
Name string `json:"name"`
Provider providers.ProviderType `json:"provider"`
Location DatacenterLocation `json:"location"`
APIEndpoint string `json:"apiEndpoint"`
}

type DatacenterLocation struct {
Expand Down Expand Up @@ -375,15 +376,15 @@ type Billing struct {
}

type Price struct {
ID string `json:"id" bson:"_id,omitempty"`
Provider string `json:"provider"`
MachineClass string `json:"machineClass"`
Cpu int `json:"cpu"`
Memory int64 `json:"memory"`
MemoryBytes int64 `json:"memoryBytes"`
Price int `json:"price"`
From time.Time `json:"from"`
To time.Time `json:"to,omitempty"`
ID string `json:"id" bson:"_id,omitempty"`
Provider providers.ProviderType `json:"provider"`
MachineClass string `json:"machineClass"`
Cpu int `json:"cpu"`
Memory int64 `json:"memory"`
MemoryBytes int64 `json:"memoryBytes"`
Price int `json:"price"`
From time.Time `json:"from"`
To time.Time `json:"to,omitempty"`
}

type PaginatedResult[T any] struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,39 +13,46 @@ type ResourceClusterOrder struct {
}

type ResourceClusterOrderSpec struct {
Provider providers.ProviderType `json:"provider" validate:"required,min=1,ne=' '"`
ClusterName string `json:"clusterName" validate:"required,min=1,ne=' '"`
ProjectId string `json:"projectId" validate:"required,min=1,ne=' '"`
OrderBy string `json:"orderBy" validate:"required,min=1,ne=' '"`

Environment EnvironmentType `json:"environment" validate:"required,min=1,max=4"`
Criticality CriticalityLevel `json:"criticality" validate:"required,min=1,max=4"`
Sensitivity SensitivityLevel `json:"sensitivity" validate:"required,min=1,max=4"`
HighAvailability bool `json:"highAvailability" validate:"boolean"`
NodePools []ResourceClusterOrderSpecNodePool `json:"nodePools" validate:"required,min=1,dive,required"`
OrderType ResourceActionType `json:"orderType" validate:"required,min=1,ne=' '"`
Provider providers.ProviderType `json:"provider,omitempty"`
Cluster string `json:"cluster" validate:"required,min=1,ne=' '"`
ProjectId string `json:"projectId,omitempty"`
OrderBy string `json:"orderBy" validate:"required,min=1,ne=' '"`

Environment EnvironmentType `json:"environment,omitempty" validate:"min=1,max=4"`
Criticality CriticalityLevel `json:"criticality,omitempty" validate:"min=1,max=4"`
Sensitivity SensitivityLevel `json:"sensitivity,omitempty" validate:"min=1,max=4"`
HighAvailability bool `json:"highAvailability,omitempty" validate:"boolean"`
NodePools []ResourceClusterOrderSpecNodePool `json:"nodePools,omitempty" validate:"min=1,dive,required"`
ServiceTags map[string]string `json:"serviceTags,omitempty"`
ProviderConfig map[string]interface{} `json:"providerConfig,omitempty"`
OwnerGroup string `json:"ownerGroup" validate:"required,min=1,ne=' '"`
OwnerGroup string `json:"ownerGroup,omitempty" validate:"min=1,ne=' '"`
K8sVersion string `json:"k8sVersion,omitempty"`
}

type ResourceProviderConfigTanzu struct {
DatacenterId string `json:"datacenterId" validate:"required,min=1,ne=' '"`
NamespaceId string `json:"namespaceId" validate:"required,min=1,ne=' '"`
}

type ResourceProviderConfigAks struct {
Region string `json:"region" validate:"required,min=1,ne=' '"`
Subscription string `json:"subscription" validate:"required,min=1,ne=' '"`
ResourceGroup string `json:"resourceGroup" validate:"required,min=1,ne=' '"`
}

type ResourceProviderConfigKind struct {
}

type ResourceClusterOrderSpecNodePool struct {
Name string `json:"name" validate:"required,min=1,ne=' '"`
MachineClass string `json:"machineClass" validate:"required,min=1,ne=' '"`
Count int `json:"count" validate:"required,min=1"`
}

type ResourceClusterOrderStatus struct {
Status string `json:"status"`
Phase string `json:"phase"`
Phase ResourceClusterOrderStatusPhase `json:"phase"`
Conditions []ResourceKubernetesClusterStatusCondition `json:"conditions"`
CreatedTime string `json:"createdTime"`
UpdatedTime string `json:"updatedTime"`
Expand All @@ -60,6 +67,28 @@ type ResourceClusterOrderCondition struct {
Message string `json:"message"`
}

type ResourceClusterOrderStatusPhase string

const (
ResourceClusterOrderStatusPhasePending ResourceClusterOrderStatusPhase = "Pending"

ResourceClusterOrderStatusPhaseCreating ResourceClusterOrderStatusPhase = "Creating"
ResourceClusterOrderStatusPhaseUpdating ResourceClusterOrderStatusPhase = "Updating"
ResourceClusterOrderStatusPhaseDeleting ResourceClusterOrderStatusPhase = "Deleting"

ResourceClusterOrderStatusPhaseCompleted ResourceClusterOrderStatusPhase = "Completed"
ResourceClusterOrderStatusPhaseFailed ResourceClusterOrderStatusPhase = "Failed"
)

type ResourceActionType string

const (
ResourceActionTypeUnknown ResourceActionType = ""
ResourceActionTypeCreate ResourceActionType = "Create"
ResourceActionTypeUpdate ResourceActionType = "Update"
ResourceActionTypeDelete ResourceActionType = "Delete"
)

type EnvironmentType int

const (
Expand Down
1 change: 1 addition & 0 deletions pkg/messagebuscontracts/queues.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ const (
ExchangeRorResources = "ror.resources"
ExchangeRorEvents = "ror.events"
ExchangeTanzu = "tanzu"
ExchangeKind = "kind"
)
10 changes: 5 additions & 5 deletions pkg/models/providers/provider_consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package providers
type ProviderType string

const (
ProviderTypeUnknown ProviderType = "Unknown"
ProviderTypeTanzu ProviderType = "Tanzu"
ProviderTypeAks ProviderType = "AKS"
ProviderTypeK3d ProviderType = "K3D"
ProviderTypeKind ProviderType = "Kind"
ProviderTypeUnknown ProviderType = "unknown"
ProviderTypeTanzu ProviderType = "tanzu"
ProviderTypeAks ProviderType = "aks"
ProviderTypeK3d ProviderType = "k3d"
ProviderTypeKind ProviderType = "kind"
)

0 comments on commit d2ab104

Please sign in to comment.