1
0
mirror of https://github.com/rancher/types.git synced 2025-09-24 19:39:13 +00:00

Schema updates

This commit is contained in:
Darren Shepherd
2018-01-12 03:01:21 -07:00
parent fa4d425ee9
commit 5478892344
5 changed files with 31 additions and 17 deletions

View File

@@ -10,10 +10,13 @@ import (
type ClusterConditionType string
const (
// ClusterConditionReady Cluster ready to serve API (healthy when true, unehalthy when false)
ClusterConditionReady condition.Cond = "Ready"
// ClusterConditionReady Cluster ready to serve API (healthy when true, unhealthy when false)
ClusterConditionReady condition.Cond = "Ready"
ClusterConditionMachinesCreated condition.Cond = "MachinesCreated"
// ClusterConditionProvisioned Cluster is provisioned
ClusterConditionProvisioned condition.Cond = "Provisioned"
ClusterConditionUpdated condition.Cond = "Updated"
ClusterConditionRemoved condition.Cond = "Removed"
// ClusterConditionNoDiskPressure true when all cluster nodes have sufficient disk
ClusterConditionNoDiskPressure condition.Cond = "NoDiskPressure"
// ClusterConditionNoMemoryPressure true when all cluster nodes have sufficient memory
@@ -39,6 +42,7 @@ type Cluster struct {
}
type ClusterSpec struct {
Nodes []MachineConfig `json:"nodes"`
Description string `json:"description"`
Internal bool `json:"internal" norman:"nocreate,noupdate"`
GoogleKubernetesEngineConfig *GoogleKubernetesEngineConfig `json:"googleKubernetesEngineConfig,omitempty"`
@@ -54,6 +58,7 @@ type ClusterStatus struct {
Conditions []ClusterCondition `json:"conditions,omitempty"`
//Component statuses will represent cluster's components (etcd/controller/scheduler) health
// https://kubernetes.io/docs/api-reference/v1.8/#componentstatus-v1-core
Driver string `json:"driver"`
ComponentStatuses []ClusterComponentStatus `json:"componentStatuses,omitempty"`
APIEndpoint string `json:"apiEndpoint,omitempty"`
ServiceAccountToken string `json:"serviceAccountToken,omitempty"`

View File

@@ -2,6 +2,7 @@ package v3
import (
"github.com/rancher/norman/condition"
"github.com/rancher/norman/types"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -44,6 +45,8 @@ type MachineTemplateSpec struct {
}
type Machine struct {
types.Namespaced
metav1.TypeMeta `json:",inline"`
// Standard objects metadata. More info:
// https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata
@@ -60,7 +63,6 @@ type MachineStatus struct {
Conditions []MachineCondition `json:"conditions,omitempty"`
NodeStatus v1.NodeStatus `json:"nodeStatus,omitempty"`
NodeName string `json:"nodeName,omitempty"`
ClusterName string `json:"clusterName,omitempty" norman:"type=reference[cluster]"`
Requested v1.ResourceList `json:"requested,omitempty"`
Limits v1.ResourceList `json:"limits,omitempty"`
MachineTemplateSpec *MachineTemplateSpec `json:"machineTemplateSpec,omitempty"`
@@ -91,14 +93,20 @@ type MachineCondition struct {
Message string `json:"message,omitempty"`
}
type MachineConfig struct {
MachineSpec
Labels map[string]string `json:"labels"`
Annotations map[string]string `json:"annotations"`
}
type MachineSpec struct {
NodeSpec v1.NodeSpec `json:"nodeSpec"`
Description string `json:"description,omitempty"`
DisplayName string `json:"displayName,omitempty"`
RequestedHostname string `json:"requestedHostname,omitempty" norman:"noupdate"`
RequestedClusterName string `json:"requestedClusterName,omitempty" norman:"type=reference[cluster],noupdate"`
RequestedRoles []string `json:"requestedRoles,omitempty" norman:"noupdate"`
MachineTemplateName string `json:"machineTemplateName,omitempty" norman:"type=reference[machineTemplate],noupdate"`
NodeSpec v1.NodeSpec `json:"nodeSpec"`
Description string `json:"description,omitempty"`
DisplayName string `json:"displayName,omitempty"`
RequestedHostname string `json:"requestedHostname,omitempty" norman:"noupdate"`
ClusterName string `json:"clusterName,omitempty" norman:"type=reference[cluster],noupdate,required"`
Role []string `json:"role,omitempty" norman:"noupdate"`
MachineTemplateName string `json:"machineTemplateName,omitempty" norman:"type=reference[machineTemplate],noupdate"`
}
type MachineCommonParams struct {

View File

@@ -156,11 +156,11 @@ func machineTypes(schemas *types.Schemas) *types.Schemas {
return schemas.
AddMapperForType(&Version, v3.MachineSpec{}, &m.Embed{Field: "nodeSpec"}).
AddMapperForType(&Version, v3.MachineStatus{},
&m.Drop{Field: "conditions"},
&m.Drop{Field: "rkeNode"},
&m.Drop{Field: "machineTemplateSpec"},
&m.Drop{Field: "machineDriverConfig"},
&m.Embed{Field: "nodeStatus"}).
&m.Embed{Field: "nodeStatus"},
&m.SliceMerge{From: []string{"conditions", "nodeConditions"}, To: "conditions"}).
AddMapperForType(&Version, v3.Machine{},
&m.Embed{Field: "status"},
m.DisplayName{}).