From 5bfe5cb7ec675c7a59ba351901e12a7aaacbeeba Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Wed, 15 Nov 2017 16:59:47 -0700 Subject: [PATCH 1/3] A lot of API changes --- .../v1/schema/schema.go | 29 +- apis/authorization.cattle.io/v1/types.go | 4 +- apis/cluster.cattle.io/v1/schema/schema.go | 10 +- .../v1/schema/mapper/deployment_strategy.go | 47 ++ .../v1/schema/mapper/node_address.go | 2 +- .../v1/schema/mapper/os_info.go | 2 +- .../v1/schema/mapper/resource.go | 2 +- .../v1/schema/mapper/scheduling.go | 2 +- .../v1/schema/mapper/status.go | 34 ++ .../v1/schema/mapper/workload.go | 16 + apis/workload.cattle.io/v1/schema/schema.go | 456 ++++++++++-------- apis/workload.cattle.io/v1/schema/types.go | 57 +-- apis/workload.cattle.io/v1/types.go | 56 +++ commonmappers/setup.go | 28 -- generator/cleanup/main.go | 35 ++ main.go | 1 + status/status.go | 172 +++++++ 17 files changed, 661 insertions(+), 292 deletions(-) create mode 100644 apis/workload.cattle.io/v1/schema/mapper/deployment_strategy.go create mode 100644 apis/workload.cattle.io/v1/schema/mapper/status.go create mode 100644 apis/workload.cattle.io/v1/schema/mapper/workload.go create mode 100644 apis/workload.cattle.io/v1/types.go delete mode 100644 commonmappers/setup.go create mode 100644 generator/cleanup/main.go create mode 100644 status/status.go diff --git a/apis/authorization.cattle.io/v1/schema/schema.go b/apis/authorization.cattle.io/v1/schema/schema.go index fc975bc5..855b61f8 100644 --- a/apis/authorization.cattle.io/v1/schema/schema.go +++ b/apis/authorization.cattle.io/v1/schema/schema.go @@ -2,6 +2,8 @@ package schema import ( "github.com/rancher/norman/types" + "github.com/rancher/norman/types/factory" + "github.com/rancher/norman/types/mapper" "github.com/rancher/types/apis/authorization.cattle.io/v1" ) @@ -12,11 +14,30 @@ var ( Path: "/v1-authz", } - Schemas = types.NewSchemas(). - MustImport(&Version, v1.Project{}). + Schemas = factory.Schemas(&Version). + AddMapperForType(&Version, v1.Project{}, + mapper.DisplayName{}, + ). + AddMapperForType(&Version, v1.ProjectRoleTemplateBinding{}, + &mapper.Move{From: "subject/name", To: "subjectName"}, + &mapper.Move{From: "subject/kind", To: "subjectKind"}, + &mapper.Move{From: "subject/namespace", To: "subjectNamespace"}, + &mapper.Drop{Field: "subject"}, + ). + MustImportAndCustomize(&Version, v1.Project{}, func(schema *types.Schema) { + schema.SubContext = "projects" + }). MustImport(&Version, v1.ProjectRoleTemplate{}). - MustImport(&Version, v1.PodSecurityPolicyTemplate{}). MustImport(&Version, v1.ProjectRoleTemplateBinding{}). + MustImport(&Version, v1.PodSecurityPolicyTemplate{}). MustImport(&Version, v1.ClusterRoleTemplate{}). - MustImport(&Version, v1.ClusterRoleTemplateBinding{}) + MustImport(&Version, v1.ClusterRoleTemplateBinding{}). + MustImportAndCustomize(&Version, v1.ProjectRoleTemplateBinding{}, func(schema *types.Schema) { + schema.MustCustomizeField("subjectKind", func(field types.Field) types.Field { + field.Type = "enum" + field.Options = []string{"User", "Group", "ServiceAccount"} + field.Nullable = false + return field + }) + }) ) diff --git a/apis/authorization.cattle.io/v1/types.go b/apis/authorization.cattle.io/v1/types.go index c7ae2b4c..19404618 100644 --- a/apis/authorization.cattle.io/v1/types.go +++ b/apis/authorization.cattle.io/v1/types.go @@ -25,7 +25,7 @@ type ProjectRoleTemplate struct { Rules []rbacv1.PolicyRule `json:"rules,omitempty"` - ProjectRoleTemplates []string `json:"projectRoleTemplates,omitempty" norman:"type=array[reference[projectRoleTemplate]]"` + ProjectRoleTemplateNames []string `json:"projectRoleTemplateNames,omitempty" norman:"type=array[reference[projectRoleTemplate]]"` } type PodSecurityPolicyTemplate struct { @@ -51,7 +51,7 @@ type ClusterRoleTemplate struct { Rules []rbacv1.PolicyRule `json:"rules,omitempty"` - ClusterRoleTemplates []string `json:"clusterRoleTemplates,omitempty" norman:"type=array[reference[clusterRoleTemplate]]"` + ClusterRoleTemplateNames []string `json:"clusterRoleTemplateNames,omitempty" norman:"type=array[reference[clusterRoleTemplate]]"` } type ClusterRoleTemplateBinding struct { diff --git a/apis/cluster.cattle.io/v1/schema/schema.go b/apis/cluster.cattle.io/v1/schema/schema.go index 02c217ce..314e2615 100644 --- a/apis/cluster.cattle.io/v1/schema/schema.go +++ b/apis/cluster.cattle.io/v1/schema/schema.go @@ -2,9 +2,8 @@ package schema import ( "github.com/rancher/norman/types" - m "github.com/rancher/norman/types/mapping/mapper" + "github.com/rancher/norman/types/factory" "github.com/rancher/types/apis/cluster.cattle.io/v1" - "github.com/rancher/types/commonmappers" ) var ( @@ -12,14 +11,9 @@ var ( Version: "v1", Group: "cluster.cattle.io", Path: "/v1-cluster", - SubContexts: map[string]bool{ - "clusters": true, - }, } - Schemas = commonmappers.Add(&Version, types.NewSchemas()). - AddMapperForType(&Version, v1.Cluster{}, m.NewObject()). - AddMapperForType(&Version, v1.ClusterNode{}, m.NewObject()). + Schemas = factory.Schemas(&Version). MustImport(&Version, v1.Cluster{}). MustImport(&Version, v1.ClusterNode{}) ) diff --git a/apis/workload.cattle.io/v1/schema/mapper/deployment_strategy.go b/apis/workload.cattle.io/v1/schema/mapper/deployment_strategy.go new file mode 100644 index 00000000..d39e5000 --- /dev/null +++ b/apis/workload.cattle.io/v1/schema/mapper/deployment_strategy.go @@ -0,0 +1,47 @@ +package mapper + +import ( + "github.com/rancher/norman/types" + "github.com/rancher/norman/types/convert" + m "github.com/rancher/norman/types/mapper" +) + +type DeploymentStrategyMapper struct { +} + +func (d DeploymentStrategyMapper) FromInternal(data map[string]interface{}) { + if m.GetValueN(data, "strategy", "type") != "Recreate" { + m.PutValue(data, "Parallel", "deploymentStrategy", "kind") + maxUnavailable := m.GetValueN(data, "strategy", "rollingUpdate", "maxUnavailable") + maxSurge := m.GetValueN(data, "strategy", "rollingUpdate", "maxSurge") + if !convert.IsEmpty(maxSurge) { + m.PutValue(data, true, "deploymentStrategy", "parallelConfig", "startFirst") + m.PutValue(data, convert.ToString(maxSurge), "batchSize") + } else if !convert.IsEmpty(maxUnavailable) { + m.PutValue(data, convert.ToString(maxUnavailable), "batchSize") + } + } +} + +func (d DeploymentStrategyMapper) ToInternal(data map[string]interface{}) { + batchSize := m.GetValueN(data, "batchSize") + if convert.IsEmpty(batchSize) { + batchSize = 1 + } + + batchSize, _ = convert.ToNumber(batchSize) + + kind, _ := m.GetValueN(data, "deploymentStrategy", "kind").(string) + if kind == "" || kind == "Parallel" { + startFirst, _ := m.GetValueN(data, "deploymentStrategy", "startFirst").(bool) + if startFirst { + m.PutValue(data, batchSize, "strategy", "rollingUpdate", "maxSurge") + } else { + m.PutValue(data, batchSize, "strategy", "rollingUpdate", "maxUnavailable") + } + } +} + +func (d DeploymentStrategyMapper) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + return nil +} diff --git a/apis/workload.cattle.io/v1/schema/mapper/node_address.go b/apis/workload.cattle.io/v1/schema/mapper/node_address.go index 51d05afe..e57e34fc 100644 --- a/apis/workload.cattle.io/v1/schema/mapper/node_address.go +++ b/apis/workload.cattle.io/v1/schema/mapper/node_address.go @@ -2,7 +2,7 @@ package mapper import ( "github.com/rancher/norman/types" - "github.com/rancher/norman/types/mapping/mapper" + "github.com/rancher/norman/types/mapper" ) type NodeAddressMapper struct { diff --git a/apis/workload.cattle.io/v1/schema/mapper/os_info.go b/apis/workload.cattle.io/v1/schema/mapper/os_info.go index a42bbdd5..1bc31df4 100644 --- a/apis/workload.cattle.io/v1/schema/mapper/os_info.go +++ b/apis/workload.cattle.io/v1/schema/mapper/os_info.go @@ -5,7 +5,7 @@ import ( "github.com/rancher/norman/types" "github.com/rancher/norman/types/convert" - "github.com/rancher/norman/types/mapping/mapper" + "github.com/rancher/norman/types/mapper" ) type OSInfo struct { diff --git a/apis/workload.cattle.io/v1/schema/mapper/resource.go b/apis/workload.cattle.io/v1/schema/mapper/resource.go index 00d62f93..d544b55f 100644 --- a/apis/workload.cattle.io/v1/schema/mapper/resource.go +++ b/apis/workload.cattle.io/v1/schema/mapper/resource.go @@ -4,7 +4,7 @@ import ( "strings" "github.com/rancher/norman/types" - m "github.com/rancher/norman/types/mapping/mapper" + m "github.com/rancher/norman/types/mapper" ) type PivotMapper struct { diff --git a/apis/workload.cattle.io/v1/schema/mapper/scheduling.go b/apis/workload.cattle.io/v1/schema/mapper/scheduling.go index 5d1ddbc9..7c588667 100644 --- a/apis/workload.cattle.io/v1/schema/mapper/scheduling.go +++ b/apis/workload.cattle.io/v1/schema/mapper/scheduling.go @@ -9,7 +9,7 @@ import ( "github.com/rancher/norman/types" "github.com/rancher/norman/types/convert" - "github.com/rancher/norman/types/mapping/mapper" + "github.com/rancher/norman/types/mapper" "k8s.io/api/core/v1" ) diff --git a/apis/workload.cattle.io/v1/schema/mapper/status.go b/apis/workload.cattle.io/v1/schema/mapper/status.go new file mode 100644 index 00000000..653611f9 --- /dev/null +++ b/apis/workload.cattle.io/v1/schema/mapper/status.go @@ -0,0 +1,34 @@ +package mapper + +import ( + "github.com/rancher/norman/types" + "github.com/rancher/types/status" +) + +type Status struct { +} + +func (s Status) FromInternal(data map[string]interface{}) { + status.Set(data) +} + +func (s Status) ToInternal(data map[string]interface{}) { +} + +func (s Status) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + schema.ResourceFields["state"] = types.Field{ + Type: "string", + } + schema.ResourceFields["transitioning"] = types.Field{ + Type: "enum", + Options: []string{ + "yes", + "no", + "error", + }, + } + schema.ResourceFields["transitioningMessage"] = types.Field{ + Type: "string", + } + return nil +} diff --git a/apis/workload.cattle.io/v1/schema/mapper/workload.go b/apis/workload.cattle.io/v1/schema/mapper/workload.go new file mode 100644 index 00000000..92195755 --- /dev/null +++ b/apis/workload.cattle.io/v1/schema/mapper/workload.go @@ -0,0 +1,16 @@ +package mapper + +import ( + "github.com/rancher/norman/types" + m "github.com/rancher/norman/types/mapper" +) + +func NewWorkloadTypeMapper() types.Mapper { + return &types.Mappers{ + &m.Move{From: "labels", To: "workloadLabels"}, + &m.Move{From: "annotations", To: "workloadAnnotations"}, + &m.Move{From: "metadata/labels", To: "labels", NoDeleteFromField: true}, + &m.Move{From: "metadata/annotations", To: "annotations", NoDeleteFromField: true}, + &m.Drop{Field: "metadata"}, + } +} diff --git a/apis/workload.cattle.io/v1/schema/schema.go b/apis/workload.cattle.io/v1/schema/schema.go index 1185d3a2..a8be020b 100644 --- a/apis/workload.cattle.io/v1/schema/schema.go +++ b/apis/workload.cattle.io/v1/schema/schema.go @@ -2,9 +2,10 @@ package schema import ( "github.com/rancher/norman/types" - m "github.com/rancher/norman/types/mapping/mapper" + "github.com/rancher/norman/types/factory" + m "github.com/rancher/norman/types/mapper" + workloadv1 "github.com/rancher/types/apis/workload.cattle.io/v1" "github.com/rancher/types/apis/workload.cattle.io/v1/schema/mapper" - "github.com/rancher/types/commonmappers" "k8s.io/api/core/v1" "k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2" ) @@ -15,249 +16,283 @@ var ( Group: "workload.cattle.io", Path: "/v1-workload", SubContexts: map[string]bool{ - "projects": true, - "namespaces": true, + "projects": true, }, } - Schemas = commonmappers.Add(&Version, types.NewSchemas()). + Schemas = factory.Schemas(&Version). Init(podTypes). Init(namespaceTypes). Init(nodeTypes). - Init(replicaSetTypes). Init(deploymentTypes). - Init(statefulSetTypes) + Init(statefulSetTypes). + Init(replicaSet). + Init(replicationController). + Init(daemonSet). + Init(workloadTypes) ) +func workloadTypes(schemas *types.Schemas) *types.Schemas { + return schemas. + AddMapperForType(&Version, workloadv1.WorkloadSpec{}, + &m.Embed{Field: "deployConfig"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, workloadv1.Workload{}, mapper.NewWorkloadTypeMapper()). + MustImport(&Version, workloadv1.Workload{}, projectOverride{}) +} + func statefulSetTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta2.StatefulSetUpdateStrategy{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Enum{Field: "type", - Values: map[string][]string{ - "RollingUpdate": {"rollingUpdate"}, - "OnDelete": {"onDelete"}, - }, - }, - m.Move{From: "type", To: "kind"}, - m.Move{From: "rollingUpdate", To: "rollingUpdateConfig"}, + AddMapperForType(&Version, v1beta2.StatefulSetSpec{}, + &m.Move{ + From: "replicas", + To: "scale", + DestDefined: true, }, - }). - AddMapperForType(&Version, v1beta2.StatefulSetSpec{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Move{ - From: "replicas", - To: "deploy/scale", - }, - m.Enum{Field: "podManagementPolicy", - Values: map[string][]string{ - "OrderedReady": {"ordered"}, - "Parallel": {"parallel"}, - }, - }, - &m.Move{ - From: "podManagementPolicy", - To: "deploy/strategy", - }, - &m.Move{ - From: "revisionHistoryLimit", - To: "deploy/maxRevisions", - }, - m.Drop{"selector"}, - m.SliceToMap{ - Field: "volumeClaimTemplates", - Key: "name", - }, + &m.Move{ + From: "updateStrategy/rollingUpdate/partition", + To: "deploymentStrategy/orderedConfig/partition", }, - }). - AddMapperForType(&Version, v1beta2.StatefulSet{}, m.NewObject()). + m.SetValue{ + From: "updateStrategy/type", + IfEq: "OnDelete", + Value: true, + To: "deploymentStrategy/orderedConfig/onDelete", + }, + m.SetValue{ + From: "podManagementPolicy", + IfEq: "Parallel", + Value: "Parallel", + To: "deploymentStrategy/kind", + }, + m.SetValue{ + From: "podManagementPolicy", + IfEq: "OrderedReady", + Value: "Ordered", + To: "deploymentStrategy/kind", + }, + m.Drop{Field: "selector"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, v1beta2.StatefulSet{}, mapper.NewWorkloadTypeMapper()). MustImport(&Version, v1beta2.StatefulSetSpec{}, deployOverride{}). - MustImport(&Version, v1beta2.StatefulSet{}) + MustImport(&Version, v1beta2.StatefulSet{}, projectOverride{}) +} + +func replicaSet(schemas *types.Schemas) *types.Schemas { + return schemas. + AddMapperForType(&Version, v1beta2.ReplicaSetSpec{}, + &m.Move{ + From: "replicas", + To: "scale", + DestDefined: true, + }, + &m.Move{ + From: "minReadySeconds", + To: "deploymentStrategy/parallelConfig/minReadySeconds", + }, + m.Drop{Field: "selector"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, v1beta2.ReplicaSet{}, mapper.NewWorkloadTypeMapper()). + MustImport(&Version, v1beta2.ReplicaSetSpec{}, deployOverride{}). + MustImportAndCustomize(&Version, v1beta2.ReplicaSet{}, func(schema *types.Schema) { + schema.BaseType = "workload" + }, projectOverride{}) +} + +func replicationController(schemas *types.Schemas) *types.Schemas { + return schemas. + AddMapperForType(&Version, v1.ReplicationControllerSpec{}, + &m.Move{ + From: "replicas", + To: "scale", + DestDefined: true, + }, + &m.Move{ + From: "minReadySeconds", + To: "deploymentStrategy/parallelConfig/minReadySeconds", + }, + m.Drop{Field: "selector"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, v1.ReplicationController{}, mapper.NewWorkloadTypeMapper()). + MustImport(&Version, v1.ReplicationControllerSpec{}, deployOverride{}). + MustImportAndCustomize(&Version, v1.ReplicationController{}, func(schema *types.Schema) { + schema.BaseType = "workload" + }, projectOverride{}) +} + +func daemonSet(schemas *types.Schemas) *types.Schemas { + return schemas. + AddMapperForType(&Version, v1beta2.DaemonSetSpec{}, + m.SetValue{ + From: "updateStrategy/type", + IfEq: "OnDelete", + Value: true, + To: "deploymentStrategy/globalConfig/onDelete", + }, + &m.Move{ + From: "minReadySeconds", + To: "deploymentStrategy/globalConfig/minReadySeconds", + }, + m.Drop{Field: "selector"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, v1beta2.DaemonSet{}, mapper.NewWorkloadTypeMapper()). + MustImport(&Version, v1beta2.DaemonSetSpec{}, deployOverride{}). + MustImportAndCustomize(&Version, v1beta2.DaemonSet{}, func(schema *types.Schema) { + schema.BaseType = "workload" + }, projectOverride{}) } func deploymentTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta2.DeploymentStrategy{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Enum{Field: "type", - Values: map[string][]string{ - "RollingUpdate": {"rollingUpdate"}, - "Recreate": {"recreate"}, - }, - }, - m.Move{From: "type", To: "kind"}, - m.Move{From: "rollingUpdate", To: "rollingUpdateConfig"}, + AddMapperForType(&Version, v1beta2.DeploymentSpec{}, + &m.Move{ + From: "replicas", + To: "scale", + DestDefined: true, }, - }). - AddMapperForType(&Version, v1beta2.DeploymentSpec{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Move{ - From: "replicas", - To: "deploy/scale", - }, - &m.Move{ - From: "minReadySeconds", - To: "deploy/minReadySeconds", - }, - &m.Move{ - From: "progressDeadlineSeconds", - To: "deploy/progressDeadlineSeconds", - }, - &m.Move{ - From: "revisionHistoryLimit", - To: "deploy/maxRevisions", - }, - m.Drop{"selector"}, - m.Move{From: "strategy", To: "updateStrategy"}, + &m.Move{ + From: "minReadySeconds", + To: "deploymentStrategy/parallelConfig/minReadySeconds", }, - }). - AddMapperForType(&Version, v1beta2.Deployment{}, m.NewObject()). + &m.Move{ + From: "progressDeadlineSeconds", + To: "deploymentStrategy/parallelConfig/progressDeadlineSeconds", + }, + mapper.DeploymentStrategyMapper{}, + m.Drop{Field: "selector"}, + m.Drop{Field: "strategy"}, + &m.Embed{Field: "template"}, + ). + AddMapperForType(&Version, v1beta2.Deployment{}, mapper.NewWorkloadTypeMapper()). MustImport(&Version, v1beta2.DeploymentSpec{}, deployOverride{}). - MustImport(&Version, v1beta2.Deployment{}) -} - -func replicaSetTypes(schemas *types.Schemas) *types.Schemas { - return schemas. - AddMapperForType(&Version, v1beta2.ReplicaSetSpec{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Move{ - From: "replicas", - To: "deploy/scale", - }, - &m.Move{ - From: "minReadySeconds", - To: "deploy/minReadySeconds", - }, - m.Drop{"selector"}, - }, - }). - AddMapperForType(&Version, v1beta2.ReplicaSet{}, m.NewObject()). - MustImport(&Version, v1beta2.ReplicaSetSpec{}, deployOverride{}). - MustImport(&Version, v1beta2.ReplicaSet{}) + MustImportAndCustomize(&Version, v1beta2.Deployment{}, func(schema *types.Schema) { + schema.BaseType = "workload" + }, projectOverride{}) } func nodeTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1.NodeStatus{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &mapper.NodeAddressMapper{}, - &mapper.OSInfo{}, - &m.Drop{"addresses"}, - &m.Drop{"conditions"}, - &m.Drop{"daemonEndpoints"}, - &m.Drop{"images"}, - &m.Drop{"nodeInfo"}, - &m.SliceToMap{Field: "volumesAttached", Key: "devicePath"}, - }, - }). - AddMapperForType(&Version, v1.Node{}, m.NewObject()). - MustImport(&Version, v1.NodeStatus{}, nodeStatusOverride{}). + AddMapperForType(&Version, v1.NodeStatus{}, + &mapper.NodeAddressMapper{}, + &mapper.OSInfo{}, + &m.Drop{Field: "addresses"}, + &m.Drop{Field: "daemonEndpoints"}, + &m.Drop{Field: "images"}, + &m.Drop{Field: "nodeInfo"}, + &m.SliceToMap{Field: "volumesAttached", Key: "devicePath"}, + ). + AddMapperForType(&Version, v1.Node{}, + mapper.Status{}, + &m.Embed{Field: "status"}, + &m.Drop{Field: "conditions"}, + ). + MustImport(&Version, v1.NodeStatus{}, struct { + IPAddress string + Hostname string + Info NodeInfo + }{}). MustImport(&Version, v1.Node{}) } + func namespaceTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1.NamespaceStatus{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Drop{"phase"}, - }, - }). - AddMapperForType(&Version, v1.NamespaceSpec{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Drop{"finalizers"}, - }, - }). - AddMapperForType(&Version, v1.Namespace{}, m.NewObject()). - MustImport(&Version, v1.Namespace{}) + AddMapperForType(&Version, v1.NamespaceStatus{}, + &m.Drop{Field: "phase"}, + ). + AddMapperForType(&Version, v1.NamespaceSpec{}, + &m.Drop{Field: "finalizers"}, + ). + AddMapperForType(&Version, v1.Namespace{}, + &m.LabelField{Field: "projectId"}, + ). + MustImport(&Version, v1.Namespace{}, projectOverride{}, struct { + Templates map[string]string + Answers map[string]interface{} + Prune bool + ExternalID string + Tags []string + }{}) } func podTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1.Capabilities{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Move{From: "add", To: "capAdd"}, - m.Move{From: "drop", To: "capDrop"}, - }, - }). - AddMapperForType(&Version, v1.PodSecurityContext{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Drop{"seLinuxOptions"}, - m.Move{From: "runAsUser", To: "uid"}, - m.Move{From: "supplementalGroups", To: "gids"}, - m.Move{From: "fsGroup", To: "fsgid"}, - }, - }). - AddMapperForType(&Version, v1.SecurityContext{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Embed{Field: "capabilities"}, - m.Drop{"seLinuxOptions"}, - m.Move{From: "readOnlyRootFilesystem", To: "readOnly"}, - m.Move{From: "runAsUser", To: "uid"}, - }, - }). - AddMapperForType(&Version, v1.Container{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Move{"command", "entrypoint"}, - m.Move{"args", "command"}, - m.Move{"livenessProbe", "healthcheck"}, - m.Move{"readinessProbe", "readycheck"}, - m.Move{"imagePullPolicy", "pullPolicy"}, - mapper.EnvironmentMapper{}, - &m.Embed{Field: "securityContext"}, - &m.Embed{Field: "lifecycle"}, - }, - }). - AddMapperForType(&Version, v1.ContainerPort{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Drop{"name"}, - }, - }). - AddMapperForType(&Version, v1.VolumeMount{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Enum{ - Field: "mountPropagation", - Values: map[string][]string{ - "HostToContainer": []string{"rslave"}, - "Bidirectional": []string{"rshared", "shared"}, - }, + AddMapperForType(&Version, v1.PodTemplateSpec{}, + &m.Embed{Field: "spec"}, + ). + AddMapperForType(&Version, v1.Capabilities{}, + m.Move{From: "add", To: "capAdd"}, + m.Move{From: "drop", To: "capDrop"}, + ). + AddMapperForType(&Version, v1.PodSecurityContext{}, + m.Drop{Field: "seLinuxOptions"}, + m.Move{From: "runAsUser", To: "uid"}, + m.Move{From: "supplementalGroups", To: "gids"}, + m.Move{From: "fsGroup", To: "fsgid"}, + ). + AddMapperForType(&Version, v1.SecurityContext{}, + &m.Embed{Field: "capabilities"}, + m.Drop{Field: "seLinuxOptions"}, + m.Move{From: "readOnlyRootFilesystem", To: "readOnly"}, + m.Move{From: "runAsUser", To: "uid"}, + ). + AddMapperForType(&Version, v1.Container{}, + m.Move{From: "command", To: "entrypoint"}, + m.Move{From: "args", To: "command"}, + m.Move{From: "livenessProbe", To: "healthcheck"}, + m.Move{From: "readinessProbe", To: "readycheck"}, + m.Move{From: "imagePullPolicy", To: "pullPolicy"}, + mapper.EnvironmentMapper{}, + &m.Embed{Field: "securityContext"}, + &m.Embed{Field: "lifecycle"}, + ). + AddMapperForType(&Version, v1.ContainerPort{}, + m.Drop{Field: "name"}, + ). + AddMapperForType(&Version, v1.VolumeMount{}, + m.Enum{ + Field: "mountPropagation", + Values: map[string][]string{ + "HostToContainer": {"rslave"}, + "Bidirectional": {"rshared", "shared"}, }, }, - }). + ). AddMapperForType(&Version, v1.Handler{}, handlerMapper). AddMapperForType(&Version, v1.Probe{}, handlerMapper). - AddMapperForType(&Version, v1.PodSpec{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Move{From: "restartPolicy", To: "restart"}, - m.Move{From: "imagePullSecrets", To: "pullSecrets"}, - mapper.NamespaceMapper{}, - mapper.InitContainerMapper{}, - mapper.SchedulingMapper{}, - &m.Embed{Field: "securityContext"}, - &m.SliceToMap{ - Field: "volumes", - Key: "name", - }, - &m.SliceToMap{ - Field: "containers", - Key: "name", - }, - &m.SliceToMap{ - Field: "hostAliases", - Key: "ip", - }, + AddMapperForType(&Version, v1.PodStatus{}, + m.Move{From: "hostIP", To: "nodeIp"}, + m.Move{From: "podIP", To: "podIp"}, + ). + AddMapperForType(&Version, v1.PodSpec{}, + m.Move{From: "restartPolicy", To: "restart"}, + m.Move{From: "imagePullSecrets", To: "pullSecrets"}, + mapper.NamespaceMapper{}, + mapper.InitContainerMapper{}, + mapper.SchedulingMapper{}, + &m.Embed{Field: "securityContext"}, + &m.Drop{Field: "serviceAccount"}, + &m.SliceToMap{ + Field: "volumes", + Key: "name", }, - }). - AddMapperForType(&Version, v1.Pod{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.Drop{"status"}, - &m.Embed{Field: "metadata"}, - &m.Embed{Field: "spec"}, + &m.SliceToMap{ + Field: "containers", + Key: "name", }, - }). - AddMapperForType(&Version, v1.ResourceRequirements{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - mapper.PivotMapper{Plural: true}, + &m.SliceToMap{ + Field: "hostAliases", + Key: "ip", }, - }). + ). + AddMapperForType(&Version, v1.ResourceRequirements{}, + mapper.PivotMapper{Plural: true}, + ). + AddMapperForType(&Version, v1.Pod{}, mapper.Status{}). // Must import handlers before Container MustImport(&Version, v1.Handler{}, handlerOverride{}). MustImport(&Version, v1.Probe{}, handlerOverride{}). @@ -269,9 +304,12 @@ func podTypes(schemas *types.Schemas) *types.Schemas { InitContainer bool }{}). MustImport(&Version, v1.PodSpec{}, struct { - Net string - PID string - IPC string + NodeName string `norman:"type=reference[node]"` + Net string + PID string + IPC string }{}). - MustImport(&Version, v1.Pod{}) + MustImport(&Version, v1.Pod{}, projectOverride{}, struct { + WorkloadID string `norman:"type=reference[workload]"` + }{}) } diff --git a/apis/workload.cattle.io/v1/schema/types.go b/apis/workload.cattle.io/v1/schema/types.go index b41503bd..4ad69b9e 100644 --- a/apis/workload.cattle.io/v1/schema/types.go +++ b/apis/workload.cattle.io/v1/schema/types.go @@ -2,28 +2,25 @@ package schema import ( "github.com/rancher/norman/types" - m "github.com/rancher/norman/types/mapping/mapper" + m "github.com/rancher/norman/types/mapper" + "github.com/rancher/types/apis/workload.cattle.io/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) var ( - handlerMapper = &types.TypeMapper{ - Mappers: []types.Mapper{ - &m.UnionEmbed{ - Fields: []m.UnionMapping{ - { - FieldName: "exec", - CheckFields: []string{"command"}, - }, - { - FieldName: "tcpSocket", - CheckFields: []string{"tcp", "port"}, - }, - { - FieldName: "httpGet", - CheckFields: []string{"port"}, - }, - }, + handlerMapper = &m.UnionEmbed{ + Fields: []m.UnionMapping{ + { + FieldName: "exec", + CheckFields: []string{"command"}, + }, + { + FieldName: "tcpSocket", + CheckFields: []string{"tcp", "port"}, + }, + { + FieldName: "httpGet", + CheckFields: []string{"port"}, }, }, } @@ -76,22 +73,6 @@ type NodeScheduling struct { Preferred []string } -type deployParams struct { - BatchSize int64 - Scale int64 - Global bool - Cron string - Job bool - Ordered bool - QuorumSize int64 -} - -type nodeStatusOverride struct { - IPAddress string - Hostname string - Info NodeInfo -} - type NodeInfo struct { CPU CPUInfo Memory MemoryInfo @@ -118,9 +99,11 @@ type KubernetesInfo struct { KubeProxyVersion string } -type DeployParams struct { +type deployOverride struct { + v1.DeployConfig } -type deployOverride struct { - Deploy *DeployParams +type projectOverride struct { + types.Namespaced + ProjectID string `norman:"type=reference[/v1-authz/schemas/project]"` } diff --git a/apis/workload.cattle.io/v1/types.go b/apis/workload.cattle.io/v1/types.go new file mode 100644 index 00000000..0f9f0609 --- /dev/null +++ b/apis/workload.cattle.io/v1/types.go @@ -0,0 +1,56 @@ +package v1 + +import ( + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +type WorkloadSpec struct { + DeployConfig DeployConfig + Template v1.PodTemplateSpec +} + +type WorkloadStatus struct { +} + +type Workload struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec WorkloadSpec `json:"spec"` + Status *WorkloadStatus `json:"status"` +} + +type DeployConfig struct { + Scale int64 + BatchSize string + DeploymentStrategy *DeployStrategy +} + +type DeploymentParallelConfig struct { + StartFirst bool + MinReadySeconds int64 + ProgressDeadlineSeconds int64 +} + +type DeploymentJobConfig struct { + BatchLimit int64 + ActiveDeadlineSeconds int64 + OnDelete bool +} + +type DeploymentOrderedConfig struct { + PartitionSize int64 + OnDelete bool +} + +type DeploymentGlobalConfig struct { + OnDelete bool +} + +type DeployStrategy struct { + Kind string + ParallelConfig *DeploymentParallelConfig + JobConfig *DeploymentJobConfig + OrderedConfig *DeploymentOrderedConfig + GlobalConfig *DeploymentGlobalConfig +} diff --git a/commonmappers/setup.go b/commonmappers/setup.go deleted file mode 100644 index d75a18a3..00000000 --- a/commonmappers/setup.go +++ /dev/null @@ -1,28 +0,0 @@ -package commonmappers - -import ( - "github.com/rancher/norman/types" - m "github.com/rancher/norman/types/mapping/mapper" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func Add(version *types.APIVersion, schemas *types.Schemas) *types.Schemas { - return schemas. - AddMapperForType(version, metav1.ObjectMeta{}, &types.TypeMapper{ - Mappers: []types.Mapper{ - m.Drop{"generateName"}, - m.Drop{"selfLink"}, - m.Move{From: "uid", To: "uuid"}, - m.Drop{"resourceVersion"}, - m.Drop{"generation"}, - m.Move{From: "creationTimestamp", To: "created"}, - m.Move{From: "deletionTimestamp", To: "removed"}, - m.Drop{"deletionGracePeriodSeconds"}, - //DeletionGracePeriodSecondsMapper{}, - m.Drop{"initializers"}, - m.Drop{"finalizers"}, - m.Drop{"clusterName"}, - m.Drop{"ownerReferences"}, - }, - }) -} diff --git a/generator/cleanup/main.go b/generator/cleanup/main.go new file mode 100644 index 00000000..b68d01e6 --- /dev/null +++ b/generator/cleanup/main.go @@ -0,0 +1,35 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" + "strings" +) + +func main() { + if err := run(); err != nil { + panic(err) + } +} + +func run() error { + return filepath.Walk("../..", func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + if strings.Contains(path, "vendor") { + return filepath.SkipDir + } + + if strings.HasPrefix(info.Name(), "zz_generated") { + fmt.Println("Removing", path) + if err := os.Remove(path); err != nil { + return err + } + } + + return nil + }) +} diff --git a/main.go b/main.go index 33c47c73..63498f3c 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,4 @@ +//go:generate go run generator/cleanup/main.go //go:generate go run main.go package main diff --git a/status/status.go b/status/status.go new file mode 100644 index 00000000..7677a339 --- /dev/null +++ b/status/status.go @@ -0,0 +1,172 @@ +package status + +import ( + "strings" + + "github.com/rancher/norman/types/convert" + "github.com/rancher/norman/types/mapper" +) + +type conditionMapping struct { + Name string + State string + Transition bool + Error bool + FalseIsGood bool +} + +type condition struct { + Type string + Status string + Message string +} + +var conditionMappings = []conditionMapping{ + { + Name: "Initialized", + Transition: true, + State: "initializing", + }, + { + Name: "Ready", + Transition: true, + State: "activating", + }, + { + Name: "Available", + Transition: true, + State: "activating", + }, + { + Name: "Progressing", + Transition: true, + State: "updating", + }, + { + Name: "ConfigOK", + Transition: true, + State: "configuring", + }, + { + Name: "PodScheduled", + Transition: true, + State: "scheduling", + }, + { + Name: "Completed", + State: "completed", + }, + { + Name: "Failed", + Error: true, + State: "error", + }, + { + Name: "OutOfDisk", + Error: true, + FalseIsGood: true, + }, + { + Name: "MemoryPressure", + Error: true, + FalseIsGood: true, + }, + { + Name: "DiskPressure", + Error: true, + FalseIsGood: true, + }, + { + Name: "NetworkUnavailable", + Error: true, + }, + { + Name: "Unschedulable", + Error: true, + FalseIsGood: true, + }, + { + Name: "ReplicaFailure", + Error: true, + FalseIsGood: true, + }, +} + +func Set(data map[string]interface{}) { + val, ok := mapper.GetValue(data, "status", "conditions") + if !ok || val == nil { + return + } + + var conditions []condition + if err := convert.ToObj(val, &conditions); err != nil { + // ignore error + return + } + + conditionMap := map[string]condition{} + for _, c := range conditions { + conditionMap[c.Type] = condition{ + Status: c.Status, + Message: c.Message, + } + } + + state := "" + error := false + transitioning := false + message := "" + + for _, conditionMapping := range conditionMappings { + good := true + condition, ok := conditionMap[conditionMapping.Name] + if !ok { + continue + } + + if conditionMapping.FalseIsGood && condition.Status == "True" { + good = false + } else if !conditionMapping.FalseIsGood && condition.Status == "False" { + good = false + } + + if !good && conditionMapping.Transition { + transitioning = true + } + + if !good && state == "" && conditionMapping.State != "" { + state = conditionMapping.State + } + + if !good && conditionMapping.Error { + error = true + if len(message) > 0 { + message = strings.Join([]string{message, condition.Message}, ",") + } else { + message = condition.Message + } + } + } + + if state == "" { + val, _ := mapper.GetValueN(data, "status", "phase").(string) + if val != "" { + state = val + } + } + + if state == "" { + state = "active" + } + + data["state"] = strings.ToLower(state) + if error { + data["transitioning"] = "error" + } else if transitioning { + data["transitioning"] = "yes" + } else { + data["transitioning"] = "no" + } + + data["transitioningMessage"] = message +} From c1906d594f3ae7bb7c1479b5dfbae281b7c8d9bd Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Tue, 21 Nov 2017 16:23:45 -0700 Subject: [PATCH 2/3] Update norman --- vendor.conf | 2 +- .../rancher/norman/clientbase/common.go | 14 +- .../rancher/norman/clientbase/ops.go | 46 +++--- .../norman/controller/generic_controller.go | 8 +- .../norman/generator/controller_template.go | 2 +- .../rancher/norman/generator/funcs.go | 9 +- .../rancher/norman/generator/generator.go | 20 ++- .../rancher/norman/generator/type_template.go | 4 +- .../rancher/norman/types/condition.go | 142 +++++++++--------- .../rancher/norman/types/convert/convert.go | 4 +- .../rancher/norman/types/convert/ref.go | 11 ++ .../norman/types/convert/value_set_string.go | 3 +- .../rancher/norman/types/factory/schemas.go | 19 +++ .../github.com/rancher/norman/types/mapper.go | 64 +++++--- .../rancher/norman/types/mapper/access.go | 33 ++++ .../rancher/norman/types/mapper/check.go | 15 ++ .../norman/types/mapper/display_name.go | 28 ++++ .../norman/types/{mapping => }/mapper/drop.go | 5 - .../types/{mapping => }/mapper/embed.go | 15 +- .../norman/types/{mapping => }/mapper/enum.go | 3 +- .../norman/types/mapper/label_field.go | 25 +++ .../rancher/norman/types/mapper/metadata.go | 30 ++++ .../norman/types/{mapping => }/mapper/move.go | 32 ++-- .../rancher/norman/types/mapper/object.go | 25 +++ .../rancher/norman/types/mapper/read_only.go | 41 +++++ .../norman/types/mapper/rename_reference.go | 53 +++++++ .../rancher/norman/types/mapper/scope.go | 37 +++++ .../rancher/norman/types/mapper/set_value.go | 49 ++++++ .../{mapping => }/mapper/slice_to_map.go | 8 +- .../types/{mapping => }/mapper/union_embed.go | 0 .../types/{mapping => }/mapper/values.go | 6 +- .../norman/types/mapping/mapper/check.go | 28 ---- .../norman/types/mapping/mapper/copy.go | 25 --- .../types/mapping/mapper/label_field.go | 25 --- .../norman/types/mapping/mapper/object.go | 19 --- .../norman/types/mapping/mapper/read_only.go | 30 ---- .../norman/types/mapping/mapper/swap.go | 20 --- .../norman/types/mapping/mapper/type.go | 1 - .../rancher/norman/types/reflection.go | 93 +++++++++++- .../rancher/norman/types/schema_funcs.go | 26 ++++ .../rancher/norman/types/schemas.go | 52 ++++--- .../rancher/norman/types/server_types.go | 82 +++++++--- .../rancher/norman/types/slice/contains.go | 10 ++ .../github.com/rancher/norman/types/types.go | 29 +++- 44 files changed, 814 insertions(+), 379 deletions(-) create mode 100644 vendor/github.com/rancher/norman/types/convert/ref.go create mode 100644 vendor/github.com/rancher/norman/types/factory/schemas.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/access.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/check.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/display_name.go rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/drop.go (88%) rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/embed.go (85%) rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/enum.go (92%) create mode 100644 vendor/github.com/rancher/norman/types/mapper/label_field.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/metadata.go rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/move.go (69%) create mode 100644 vendor/github.com/rancher/norman/types/mapper/object.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/read_only.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/rename_reference.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/scope.go create mode 100644 vendor/github.com/rancher/norman/types/mapper/set_value.go rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/slice_to_map.go (83%) rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/union_embed.go (100%) rename vendor/github.com/rancher/norman/types/{mapping => }/mapper/values.go (92%) delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/check.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/copy.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/label_field.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/object.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/read_only.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/swap.go delete mode 100644 vendor/github.com/rancher/norman/types/mapping/mapper/type.go create mode 100644 vendor/github.com/rancher/norman/types/schema_funcs.go create mode 100644 vendor/github.com/rancher/norman/types/slice/contains.go diff --git a/vendor.conf b/vendor.conf index 15ea699f..e59a4b2e 100644 --- a/vendor.conf +++ b/vendor.conf @@ -3,4 +3,4 @@ github.com/rancher/types k8s.io/kubernetes v1.8.3 transitive=true,staging=true bitbucket.org/ww/goautoneg a547fc61f48d567d5b4ec6f8aee5573d8efce11d https://github.com/rancher/goautoneg.git -github.com/rancher/norman 80024df69414f7cce0847ea72b0557f14edbc852 +github.com/rancher/norman faa1fb2148211044253fc2f6403008958c72b1f0 diff --git a/vendor/github.com/rancher/norman/clientbase/common.go b/vendor/github.com/rancher/norman/clientbase/common.go index 16fa88d3..11cd3de9 100644 --- a/vendor/github.com/rancher/norman/clientbase/common.go +++ b/vendor/github.com/rancher/norman/clientbase/common.go @@ -55,7 +55,7 @@ func IsNotFound(err error) bool { return apiError.StatusCode == http.StatusNotFound } -func newApiError(resp *http.Response, url string) *APIError { +func newAPIError(resp *http.Response, url string) *APIError { contents, err := ioutil.ReadAll(resp.Body) var body string if err != nil { @@ -161,7 +161,7 @@ func NewAPIClient(opts *ClientOpts) (APIBaseClient, error) { defer resp.Body.Close() if resp.StatusCode != 200 { - return result, newApiError(resp, opts.URL) + return result, newAPIError(resp, opts.URL) } schemasURLs := resp.Header.Get("X-API-Schemas") @@ -184,7 +184,7 @@ func NewAPIClient(opts *ClientOpts) (APIBaseClient, error) { defer resp.Body.Close() if resp.StatusCode != 200 { - return result, newApiError(resp, opts.URL) + return result, newAPIError(resp, opts.URL) } } @@ -244,7 +244,7 @@ func (a *APIBaseClient) Post(url string, createObj interface{}, respObject inter func (a *APIBaseClient) GetLink(resource types.Resource, link string, respObject interface{}) error { url := resource.Links[link] if url == "" { - return fmt.Errorf("Failed to find link: %s", link) + return fmt.Errorf("failed to find link: %s", link) } return a.Ops.DoGet(url, &types.ListOpts{}, respObject) @@ -270,12 +270,12 @@ func (a *APIBaseClient) Delete(existing *types.Resource) error { } func (a *APIBaseClient) Reload(existing *types.Resource, output interface{}) error { - selfUrl, ok := existing.Links[SELF] + selfURL, ok := existing.Links[SELF] if !ok { - return errors.New(fmt.Sprintf("Failed to find self URL of [%v]", existing)) + return fmt.Errorf("failed to find self URL of [%v]", existing) } - return a.Ops.DoGet(selfUrl, NewListOpts(), output) + return a.Ops.DoGet(selfURL, NewListOpts(), output) } func (a *APIBaseClient) Action(schemaType string, action string, diff --git a/vendor/github.com/rancher/norman/clientbase/ops.go b/vendor/github.com/rancher/norman/clientbase/ops.go index 0a9fd93e..d60e6c15 100644 --- a/vendor/github.com/rancher/norman/clientbase/ops.go +++ b/vendor/github.com/rancher/norman/clientbase/ops.go @@ -34,7 +34,7 @@ func (a *APIOperations) DoDelete(url string) error { io.Copy(ioutil.Discard, resp.Body) if resp.StatusCode >= 300 { - return newApiError(resp, url) + return newAPIError(resp, url) } return nil @@ -68,7 +68,7 @@ func (a *APIOperations) DoGet(url string, opts *types.ListOpts, respObject inter defer resp.Body.Close() if resp.StatusCode != 200 { - return newApiError(resp, url) + return newAPIError(resp, url) } byteContent, err := ioutil.ReadAll(resp.Body) @@ -97,16 +97,16 @@ func (a *APIOperations) DoList(schemaType string, opts *types.ListOpts, respObje return errors.New("Resource type [" + schemaType + "] is not listable") } - collectionUrl, ok := schema.Links[COLLECTION] + collectionURL, ok := schema.Links[COLLECTION] if !ok { return errors.New("Failed to find collection URL for [" + schemaType + "]") } - return a.DoGet(collectionUrl, opts, respObject) + return a.DoGet(collectionURL, opts, respObject) } -func (a *APIOperations) DoNext(nextUrl string, respObject interface{}) error { - return a.DoGet(nextUrl, nil, respObject) +func (a *APIOperations) DoNext(nextURL string, respObject interface{}) error { + return a.DoGet(nextURL, nil, respObject) } func (a *APIOperations) DoModify(method string, url string, createObj interface{}, respObject interface{}) error { @@ -136,7 +136,7 @@ func (a *APIOperations) DoModify(method string, url string, createObj interface{ defer resp.Body.Close() if resp.StatusCode >= 300 { - return newApiError(resp, url) + return newAPIError(resp, url) } byteContent, err := ioutil.ReadAll(resp.Body) @@ -170,16 +170,16 @@ func (a *APIOperations) DoCreate(schemaType string, createObj interface{}, respO return errors.New("Resource type [" + schemaType + "] is not creatable") } - var collectionUrl string - collectionUrl, ok = schema.Links[COLLECTION] + var collectionURL string + collectionURL, ok = schema.Links[COLLECTION] if !ok { // return errors.New("Failed to find collection URL for [" + schemaType + "]") // This is a hack to address https://github.com/rancher/cattle/issues/254 re := regexp.MustCompile("schemas.*") - collectionUrl = re.ReplaceAllString(schema.Links[SELF], schema.PluralName) + collectionURL = re.ReplaceAllString(schema.Links[SELF], schema.PluralName) } - return a.DoModify("POST", collectionUrl, createObj, respObject) + return a.DoModify("POST", collectionURL, createObj, respObject) } func (a *APIOperations) DoUpdate(schemaType string, existing *types.Resource, updates interface{}, respObject interface{}) error { @@ -187,9 +187,9 @@ func (a *APIOperations) DoUpdate(schemaType string, existing *types.Resource, up return errors.New("Existing object is nil") } - selfUrl, ok := existing.Links[SELF] + selfURL, ok := existing.Links[SELF] if !ok { - return errors.New(fmt.Sprintf("Failed to find self URL of [%v]", existing)) + return fmt.Errorf("failed to find self URL of [%v]", existing) } if updates == nil { @@ -209,7 +209,7 @@ func (a *APIOperations) DoUpdate(schemaType string, existing *types.Resource, up return errors.New("Resource type [" + schemaType + "] is not updatable") } - return a.DoModify("PUT", selfUrl, updates, respObject) + return a.DoModify("PUT", selfURL, updates, respObject) } func (a *APIOperations) DoByID(schemaType string, id string, respObject interface{}) error { @@ -222,12 +222,12 @@ func (a *APIOperations) DoByID(schemaType string, id string, respObject interfac return errors.New("Resource type [" + schemaType + "] can not be looked up by ID") } - collectionUrl, ok := schema.Links[COLLECTION] + collectionURL, ok := schema.Links[COLLECTION] if !ok { return errors.New("Failed to find collection URL for [" + schemaType + "]") } - return a.DoGet(collectionUrl+"/"+id, nil, respObject) + return a.DoGet(collectionURL+"/"+id, nil, respObject) } func (a *APIOperations) DoResourceDelete(schemaType string, existing *types.Resource) error { @@ -240,12 +240,12 @@ func (a *APIOperations) DoResourceDelete(schemaType string, existing *types.Reso return errors.New("Resource type [" + schemaType + "] can not be deleted") } - selfUrl, ok := existing.Links[SELF] + selfURL, ok := existing.Links[SELF] if !ok { - return errors.New(fmt.Sprintf("Failed to find self URL of [%v]", existing)) + return fmt.Errorf("failed to find self URL of [%v]", existing) } - return a.DoDelete(selfUrl) + return a.DoDelete(selfURL) } func (a *APIOperations) DoAction(schemaType string, action string, @@ -255,9 +255,9 @@ func (a *APIOperations) DoAction(schemaType string, action string, return errors.New("Existing object is nil") } - actionUrl, ok := existing.Actions[action] + actionURL, ok := existing.Actions[action] if !ok { - return errors.New(fmt.Sprintf("Action [%v] not available on [%v]", action, existing)) + return fmt.Errorf("action [%v] not available on [%v]", action, existing) } _, ok = a.Types[schemaType] @@ -278,7 +278,7 @@ func (a *APIOperations) DoAction(schemaType string, action string, input = bytes.NewBuffer(bodyContent) } - req, err := http.NewRequest("POST", actionUrl, input) + req, err := http.NewRequest("POST", actionURL, input) if err != nil { return err } @@ -295,7 +295,7 @@ func (a *APIOperations) DoAction(schemaType string, action string, defer resp.Body.Close() if resp.StatusCode >= 300 { - return newApiError(resp, actionUrl) + return newAPIError(resp, actionURL) } byteContent, err := ioutil.ReadAll(resp.Body) diff --git a/vendor/github.com/rancher/norman/controller/generic_controller.go b/vendor/github.com/rancher/norman/controller/generic_controller.go index 9d41235e..6129f445 100644 --- a/vendor/github.com/rancher/norman/controller/generic_controller.go +++ b/vendor/github.com/rancher/norman/controller/generic_controller.go @@ -25,7 +25,7 @@ type GenericController interface { Informer() cache.SharedIndexInformer AddHandler(handler HandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type genericController struct { @@ -69,12 +69,12 @@ func (g *genericController) AddHandler(handler HandlerFunc) { g.handlers = append(g.handlers, handler) } -func (g *genericController) Start(threadiness int, ctx context.Context) error { +func (g *genericController) Start(ctx context.Context, threadiness int) error { g.Lock() defer g.Unlock() if !g.running { - go g.run(threadiness, ctx) + go g.run(ctx, threadiness) } g.running = true @@ -88,7 +88,7 @@ func (g *genericController) queueObject(obj interface{}) { } } -func (g *genericController) run(threadiness int, ctx context.Context) { +func (g *genericController) run(ctx context.Context, threadiness int) { defer utilruntime.HandleCrash() defer g.queue.ShutDown() diff --git a/vendor/github.com/rancher/norman/generator/controller_template.go b/vendor/github.com/rancher/norman/generator/controller_template.go index d61ecdb5..d370235f 100644 --- a/vendor/github.com/rancher/norman/generator/controller_template.go +++ b/vendor/github.com/rancher/norman/generator/controller_template.go @@ -43,7 +43,7 @@ type {{.schema.CodeName}}Controller interface { Informer() cache.SharedIndexInformer AddHandler(handler {{.schema.CodeName}}HandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type {{.schema.CodeName}}Interface interface { diff --git a/vendor/github.com/rancher/norman/generator/funcs.go b/vendor/github.com/rancher/norman/generator/funcs.go index c744b373..6af1d3e7 100644 --- a/vendor/github.com/rancher/norman/generator/funcs.go +++ b/vendor/github.com/rancher/norman/generator/funcs.go @@ -11,11 +11,10 @@ import ( func funcs() template.FuncMap { return template.FuncMap{ - "toLowerCamelCase": convert.LowerTitle, - "capitalize": convert.Capitalize, - "upper": strings.ToUpper, - "toLower": strings.ToLower, - "hasGet": hasGet, + "capitalize": convert.Capitalize, + "upper": strings.ToUpper, + "toLower": strings.ToLower, + "hasGet": hasGet, } } diff --git a/vendor/github.com/rancher/norman/generator/generator.go b/vendor/github.com/rancher/norman/generator/generator.go index 0f599f7d..69675425 100644 --- a/vendor/github.com/rancher/norman/generator/generator.go +++ b/vendor/github.com/rancher/norman/generator/generator.go @@ -30,6 +30,11 @@ var ( underscoreRegexp = regexp.MustCompile(`([a-z])([A-Z])`) ) +type fieldInfo struct { + Name string + Type string +} + func getGoType(field types.Field, schema *types.Schema, schemas *types.Schemas) string { return getTypeString(field.Nullable, field.Type, schema, schemas) } @@ -87,10 +92,13 @@ func getTypeString(nullable bool, typeName string, schema *types.Schema, schemas return name } -func getTypeMap(schema *types.Schema, schemas *types.Schemas) map[string]string { - result := map[string]string{} - for _, field := range schema.ResourceFields { - result[field.CodeName] = getGoType(field, schema, schemas) +func getTypeMap(schema *types.Schema, schemas *types.Schemas) map[string]fieldInfo { + result := map[string]fieldInfo{} + for name, field := range schema.ResourceFields { + result[field.CodeName] = fieldInfo{ + Name: name, + Type: getGoType(field, schema, schemas), + } } return result } @@ -143,9 +151,7 @@ func generateController(outputDir string, schema *types.Schema, schemas *types.S } return typeTemplate.Execute(output, map[string]interface{}{ - "schema": schema, - "structFields": getTypeMap(schema, schemas), - "resourceActions": getResourceActions(schema, schemas), + "schema": schema, }) } diff --git a/vendor/github.com/rancher/norman/generator/type_template.go b/vendor/github.com/rancher/norman/generator/type_template.go index 7f05c567..e790936a 100644 --- a/vendor/github.com/rancher/norman/generator/type_template.go +++ b/vendor/github.com/rancher/norman/generator/type_template.go @@ -11,7 +11,7 @@ import ( const ( {{.schema.CodeName}}Type = "{{.schema.ID}}" {{- range $key, $value := .structFields}} - {{$.schema.CodeName}}Field{{$key}} = "{{$key | toLowerCamelCase }}" + {{$.schema.CodeName}}Field{{$key}} = "{{$value.Name}}" {{- end}} ) @@ -20,7 +20,7 @@ type {{.schema.CodeName}} struct { types.Resource {{- end}} {{- range $key, $value := .structFields}} - {{$key}} {{$value}} %BACK%json:"{{$key | toLowerCamelCase }},omitempty"%BACK% + {{$key}} {{$value.Type}} %BACK%json:"{{$value.Name}},omitempty"%BACK% {{- end}} } diff --git a/vendor/github.com/rancher/norman/types/condition.go b/vendor/github.com/rancher/norman/types/condition.go index 0d5bdd07..aebe36e4 100644 --- a/vendor/github.com/rancher/norman/types/condition.go +++ b/vendor/github.com/rancher/norman/types/condition.go @@ -1,108 +1,108 @@ package types -var ( - COND_EQ = QueryConditionType{"eq", 1} - COND_NE = QueryConditionType{"ne", 1} - COND_NULL = QueryConditionType{"null", 0} - COND_NOTNULL = QueryConditionType{"notnull", 0} - COND_IN = QueryConditionType{"in", -1} - COND_NOTIN = QueryConditionType{"notin", -1} - COND_OR = QueryConditionType{"or", 1} - COND_AND = QueryConditionType{"and", 1} +import ( + "github.com/rancher/norman/types/convert" +) - mods = map[string]QueryConditionType{ - COND_EQ.Name: COND_EQ, - COND_NE.Name: COND_NE, - COND_NULL.Name: COND_NULL, - COND_NOTNULL.Name: COND_NOTNULL, - COND_IN.Name: COND_IN, - COND_NOTIN.Name: COND_NOTIN, - COND_OR.Name: COND_OR, - COND_AND.Name: COND_AND, +var ( + CondEQ = QueryConditionType{ModifierEQ, 1} + CondNE = QueryConditionType{ModifierNE, 1} + CondNull = QueryConditionType{ModifierNull, 0} + CondNotNull = QueryConditionType{ModifierNotNull, 0} + CondIn = QueryConditionType{ModifierIn, -1} + CondNotIn = QueryConditionType{ModifierNotIn, -1} + CondOr = QueryConditionType{ModifierType("or"), 1} + CondAnd = QueryConditionType{ModifierType("and"), 1} + + mods = map[ModifierType]QueryConditionType{ + CondEQ.Name: CondEQ, + CondNE.Name: CondNE, + CondNull.Name: CondNull, + CondNotNull.Name: CondNotNull, + CondIn.Name: CondIn, + CondNotIn.Name: CondNotIn, + CondOr.Name: CondOr, + CondAnd.Name: CondAnd, } ) type QueryConditionType struct { - Name string + Name ModifierType Args int } type QueryCondition struct { Field string - Values []interface{} + Value string + Values map[string]bool conditionType QueryConditionType left, right *QueryCondition } +func (q *QueryCondition) Valid(data map[string]interface{}) bool { + switch q.conditionType { + case CondAnd: + if q.left == nil || q.right == nil { + return false + } + return q.left.Valid(data) && q.right.Valid(data) + case CondOr: + if q.left == nil || q.right == nil { + return false + } + return q.left.Valid(data) || q.right.Valid(data) + case CondEQ: + return q.Value == convert.ToString(data[q.Field]) + case CondNE: + return q.Value != convert.ToString(data[q.Field]) + case CondIn: + return q.Values[convert.ToString(data[q.Field])] + case CondNotIn: + return !q.Values[convert.ToString(data[q.Field])] + case CondNotNull: + return convert.ToString(data[q.Field]) != "" + case CondNull: + return convert.ToString(data[q.Field]) == "" + } + + return false +} + func (q *QueryCondition) ToCondition() Condition { cond := Condition{ Modifier: q.conditionType.Name, } - if q.conditionType.Args == 1 && len(q.Values) > 0 { - cond.Value = q.Values[0] + if q.conditionType.Args == 1 { + cond.Value = q.Value } else if q.conditionType.Args == -1 { - cond.Value = q.Values + stringValues := []string{} + for val := range q.Values { + stringValues = append(stringValues, val) + } + cond.Value = stringValues } return cond } -func ValidMod(mod string) bool { +func ValidMod(mod ModifierType) bool { _, ok := mods[mod] return ok } -func NewConditionFromString(field, mod string, values ...interface{}) *QueryCondition { - return &QueryCondition{ +func NewConditionFromString(field string, mod ModifierType, values ...string) *QueryCondition { + q := &QueryCondition{ Field: field, - Values: values, conditionType: mods[mod], + Values: map[string]bool{}, } -} -func NewCondition(mod QueryConditionType, values ...interface{}) *QueryCondition { - return &QueryCondition{ - Values: values, - conditionType: mod, + for i, value := range values { + if i == 0 { + q.Value = value + } + q.Values[value] = true } -} -func NE(value interface{}) *QueryCondition { - return NewCondition(COND_NE, value) -} - -func EQ(value interface{}) *QueryCondition { - return NewCondition(COND_EQ, value) -} - -func NULL(value interface{}) *QueryCondition { - return NewCondition(COND_NULL) -} - -func NOTNULL(value interface{}) *QueryCondition { - return NewCondition(COND_NOTNULL) -} - -func IN(values ...interface{}) *QueryCondition { - return NewCondition(COND_IN, values...) -} - -func NOTIN(values ...interface{}) *QueryCondition { - return NewCondition(COND_NOTIN, values...) -} - -func (c *QueryCondition) AND(right *QueryCondition) *QueryCondition { - return &QueryCondition{ - conditionType: COND_AND, - left: c, - right: right, - } -} - -func (c *QueryCondition) OR(right *QueryCondition) *QueryCondition { - return &QueryCondition{ - conditionType: COND_OR, - left: c, - right: right, - } + return q } diff --git a/vendor/github.com/rancher/norman/types/convert/convert.go b/vendor/github.com/rancher/norman/types/convert/convert.go index 1e585bc5..421d7aed 100644 --- a/vendor/github.com/rancher/norman/types/convert/convert.go +++ b/vendor/github.com/rancher/norman/types/convert/convert.go @@ -132,12 +132,12 @@ func ToStringSlice(data interface{}) []string { return nil } -func ToObj(data interface{}, obj interface{}) error { +func ToObj(data interface{}, into interface{}) error { bytes, err := json.Marshal(data) if err != nil { return err } - return json.Unmarshal(bytes, obj) + return json.Unmarshal(bytes, into) } func EncodeToMap(obj interface{}) (map[string]interface{}, error) { diff --git a/vendor/github.com/rancher/norman/types/convert/ref.go b/vendor/github.com/rancher/norman/types/convert/ref.go new file mode 100644 index 00000000..b269a76c --- /dev/null +++ b/vendor/github.com/rancher/norman/types/convert/ref.go @@ -0,0 +1,11 @@ +package convert + +import "fmt" + +func ToReference(typeName string) string { + return fmt.Sprintf("reference[%s]", typeName) +} + +func ToFullReference(path, typeName string) string { + return fmt.Sprintf("reference[%s/schemas/%s]", path, typeName) +} diff --git a/vendor/github.com/rancher/norman/types/convert/value_set_string.go b/vendor/github.com/rancher/norman/types/convert/value_set_string.go index 88f981d3..d9b329fa 100644 --- a/vendor/github.com/rancher/norman/types/convert/value_set_string.go +++ b/vendor/github.com/rancher/norman/types/convert/value_set_string.go @@ -13,7 +13,6 @@ func ToValuesSlice(value string) []string { value = strings.TrimSpace(value) if strings.HasPrefix(value, "(") && strings.HasSuffix(value, ")") { return splitRegexp.Split(value[1:len(value)-1], -1) - } else { - return []string{value} } + return []string{value} } diff --git a/vendor/github.com/rancher/norman/types/factory/schemas.go b/vendor/github.com/rancher/norman/types/factory/schemas.go new file mode 100644 index 00000000..055daee0 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/factory/schemas.go @@ -0,0 +1,19 @@ +package factory + +import ( + "github.com/rancher/norman/types" + "github.com/rancher/norman/types/mapper" + "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func Schemas(version *types.APIVersion) *types.Schemas { + s := types.NewSchemas() + s.DefaultMappers = []types.Mapper{ + mapper.NewObject(), + } + s.DefaultPostMappers = []types.Mapper{ + &mapper.RenameReference{}, + } + s.AddMapperForType(version, v1.ObjectMeta{}, mapper.NewMetadataMapper()) + return s +} diff --git a/vendor/github.com/rancher/norman/types/mapper.go b/vendor/github.com/rancher/norman/types/mapper.go index 0b43e6c0..3bd85878 100644 --- a/vendor/github.com/rancher/norman/types/mapper.go +++ b/vendor/github.com/rancher/norman/types/mapper.go @@ -1,7 +1,6 @@ package types import ( - "github.com/pkg/errors" "github.com/rancher/norman/types/definition" ) @@ -11,14 +10,37 @@ type Mapper interface { ModifySchema(schema *Schema, schemas *Schemas) error } -type TypeMapper struct { +type Mappers []Mapper + +func (m Mappers) FromInternal(data map[string]interface{}) { + for _, mapper := range m { + mapper.FromInternal(data) + } +} + +func (m Mappers) ToInternal(data map[string]interface{}) { + for i := len(m) - 1; i >= 0; i-- { + m[i].ToInternal(data) + } +} + +func (m Mappers) ModifySchema(schema *Schema, schemas *Schemas) error { + for _, mapper := range m { + if err := mapper.ModifySchema(schema, schemas); err != nil { + return err + } + } + return nil +} + +type typeMapper struct { Mappers []Mapper typeName string subSchemas map[string]*Schema subArraySchemas map[string]*Schema } -func (t *TypeMapper) FromInternal(data map[string]interface{}) { +func (t *typeMapper) FromInternal(data map[string]interface{}) { for fieldName, schema := range t.subSchemas { if schema.Mapper == nil { continue @@ -38,19 +60,29 @@ func (t *TypeMapper) FromInternal(data map[string]interface{}) { } } - for _, mapper := range t.Mappers { - mapper.FromInternal(data) - } + Mappers(t.Mappers).FromInternal(data) if data != nil { - data["type"] = t.typeName + if _, ok := data["type"]; !ok { + data["type"] = t.typeName + } + name, _ := data["name"].(string) + namespace, _ := data["namespace"].(string) + + if _, ok := data["id"]; !ok { + if name != "" { + if namespace == "" { + data["id"] = name + } else { + data["id"] = namespace + ":" + name + } + } + } } } -func (t *TypeMapper) ToInternal(data map[string]interface{}) { - for i := len(t.Mappers) - 1; i >= 0; i-- { - t.Mappers[i].ToInternal(data) - } +func (t *typeMapper) ToInternal(data map[string]interface{}) { + Mappers(t.Mappers).ToInternal(data) for fieldName, schema := range t.subArraySchemas { if schema.Mapper == nil { @@ -71,7 +103,7 @@ func (t *TypeMapper) ToInternal(data map[string]interface{}) { } } -func (t *TypeMapper) ModifySchema(schema *Schema, schemas *Schemas) error { +func (t *typeMapper) ModifySchema(schema *Schema, schemas *Schemas) error { t.subSchemas = map[string]*Schema{} t.subArraySchemas = map[string]*Schema{} t.typeName = schema.ID @@ -94,11 +126,5 @@ func (t *TypeMapper) ModifySchema(schema *Schema, schemas *Schemas) error { } } - for _, mapper := range t.Mappers { - if err := mapper.ModifySchema(schema, schemas); err != nil { - return errors.Wrapf(err, "mapping type %s", schema.ID) - } - } - - return nil + return Mappers(t.Mappers).ModifySchema(schema, schemas) } diff --git a/vendor/github.com/rancher/norman/types/mapper/access.go b/vendor/github.com/rancher/norman/types/mapper/access.go new file mode 100644 index 00000000..14043c58 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/access.go @@ -0,0 +1,33 @@ +package mapper + +import ( + "strings" + + "github.com/rancher/norman/types" +) + +type Access struct { + Fields map[string]string +} + +func (e Access) FromInternal(data map[string]interface{}) { +} + +func (e Access) ToInternal(data map[string]interface{}) { +} + +func (e Access) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + for name, access := range e.Fields { + if err := validateField(name, schema); err != nil { + return err + } + + field := schema.ResourceFields[name] + field.Create = strings.Contains(access, "c") + field.Update = strings.Contains(access, "u") + field.WriteOnly = strings.Contains(access, "o") + + schema.ResourceFields[name] = field + } + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapper/check.go b/vendor/github.com/rancher/norman/types/mapper/check.go new file mode 100644 index 00000000..30e7cefa --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/check.go @@ -0,0 +1,15 @@ +package mapper + +import ( + "fmt" + + "github.com/rancher/norman/types" +) + +func validateField(field string, schema *types.Schema) error { + if _, ok := schema.ResourceFields[field]; !ok { + return fmt.Errorf("field %s missing on schema %s", field, schema.ID) + } + + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapper/display_name.go b/vendor/github.com/rancher/norman/types/mapper/display_name.go new file mode 100644 index 00000000..506aff16 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/display_name.go @@ -0,0 +1,28 @@ +package mapper + +import ( + "github.com/rancher/norman/types" +) + +var displayNameMappers = types.Mappers{ + &Move{From: "name", To: "id"}, + &Move{From: "displayName", To: "name"}, + Access{Fields: map[string]string{ + "id": "", + }}, +} + +type DisplayName struct { +} + +func (d DisplayName) FromInternal(data map[string]interface{}) { + displayNameMappers.FromInternal(data) +} + +func (d DisplayName) ToInternal(data map[string]interface{}) { + displayNameMappers.ToInternal(data) +} + +func (d DisplayName) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + return displayNameMappers.ModifySchema(schema, schemas) +} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/drop.go b/vendor/github.com/rancher/norman/types/mapper/drop.go similarity index 88% rename from vendor/github.com/rancher/norman/types/mapping/mapper/drop.go rename to vendor/github.com/rancher/norman/types/mapper/drop.go index a76d9ac5..64032d8f 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/drop.go +++ b/vendor/github.com/rancher/norman/types/mapper/drop.go @@ -18,11 +18,6 @@ func (d Drop) ToInternal(data map[string]interface{}) { } func (d Drop) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { - _, err := getInternal(schema) - if err != nil { - return err - } - if _, ok := schema.ResourceFields[d.Field]; !ok { return fmt.Errorf("can not drop missing field %s on %s", d.Field, schema.ID) } diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/embed.go b/vendor/github.com/rancher/norman/types/mapper/embed.go similarity index 85% rename from vendor/github.com/rancher/norman/types/mapping/mapper/embed.go rename to vendor/github.com/rancher/norman/types/mapper/embed.go index ea5c3e80..2c48945b 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/embed.go +++ b/vendor/github.com/rancher/norman/types/mapper/embed.go @@ -8,7 +8,9 @@ import ( type Embed struct { Field string + Optional bool ReadOnly bool + Ignore []string ignoreOverride bool embeddedFields []string } @@ -37,20 +39,29 @@ func (e *Embed) ToInternal(data map[string]interface{}) { } func (e *Embed) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { - internalSchema, err := validateInternalField(e.Field, schema) + err := validateField(e.Field, schema) if err != nil { + if e.Optional { + return nil + } return err } e.embeddedFields = []string{} - embeddedSchemaID := internalSchema.ResourceFields[e.Field].Type + embeddedSchemaID := schema.ResourceFields[e.Field].Type embeddedSchema := schemas.Schema(&schema.Version, embeddedSchemaID) if embeddedSchema == nil { return fmt.Errorf("failed to find schema %s for embedding", embeddedSchemaID) } for name, field := range embeddedSchema.ResourceFields { + for _, ignore := range e.Ignore { + if ignore == name { + continue + } + } + if !e.ignoreOverride { if _, ok := schema.ResourceFields[name]; ok { return fmt.Errorf("embedding field %s on %s will overwrite the field %s", diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/enum.go b/vendor/github.com/rancher/norman/types/mapper/enum.go similarity index 92% rename from vendor/github.com/rancher/norman/types/mapping/mapper/enum.go rename to vendor/github.com/rancher/norman/types/mapper/enum.go index e2c276e3..96d2e69f 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/enum.go +++ b/vendor/github.com/rancher/norman/types/mapper/enum.go @@ -44,6 +44,5 @@ func (e Enum) ToInternal(data map[string]interface{}) { } func (e Enum) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { - _, err := validateInternalField(e.Field, schema) - return err + return validateField(e.Field, schema) } diff --git a/vendor/github.com/rancher/norman/types/mapper/label_field.go b/vendor/github.com/rancher/norman/types/mapper/label_field.go new file mode 100644 index 00000000..6a05d57a --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/label_field.go @@ -0,0 +1,25 @@ +package mapper + +import "github.com/rancher/norman/types" + +type LabelField struct { + Field string +} + +func (e LabelField) FromInternal(data map[string]interface{}) { + v, ok := RemoveValue(data, "labels", "io.cattle.field."+e.Field) + if ok { + data[e.Field] = v + } +} + +func (e LabelField) ToInternal(data map[string]interface{}) { + v, ok := data[e.Field] + if ok { + PutValue(data, v, "labels", "io.cattle.field."+e.Field) + } +} + +func (e LabelField) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + return validateField(e.Field, schema) +} diff --git a/vendor/github.com/rancher/norman/types/mapper/metadata.go b/vendor/github.com/rancher/norman/types/mapper/metadata.go new file mode 100644 index 00000000..ddbfa5f8 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/metadata.go @@ -0,0 +1,30 @@ +package mapper + +import ( + "github.com/rancher/norman/types" +) + +func NewMetadataMapper() types.Mapper { + return types.Mappers{ + Drop{"generateName"}, + Move{From: "selfLink", To: "resourcePath"}, + Move{From: "uid", To: "uuid"}, + Drop{"resourceVersion"}, + Drop{"generation"}, + Move{From: "creationTimestamp", To: "created"}, + Move{From: "deletionTimestamp", To: "removed"}, + Drop{"deletionGracePeriodSeconds"}, + Drop{"initializers"}, + Drop{"finalizers"}, + Drop{"clusterName"}, + ReadOnly{Field: "*"}, + Access{ + Fields: map[string]string{ + "name": "c", + "namespace": "cu", + "labels": "cu", + "annotations": "cu", + }, + }, + } +} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/move.go b/vendor/github.com/rancher/norman/types/mapper/move.go similarity index 69% rename from vendor/github.com/rancher/norman/types/mapping/mapper/move.go rename to vendor/github.com/rancher/norman/types/mapper/move.go index 2016b82e..e39d361d 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/move.go +++ b/vendor/github.com/rancher/norman/types/mapper/move.go @@ -10,7 +10,9 @@ import ( ) type Move struct { - From, To string + From, To string + DestDefined bool + NoDeleteFromField bool } func (m Move) FromInternal(data map[string]interface{}) { @@ -26,37 +28,31 @@ func (m Move) ToInternal(data map[string]interface{}) { } func (m Move) ModifySchema(s *types.Schema, schemas *types.Schemas) error { - internalSchema, err := getInternal(s) - if err != nil { - return err - } - - _, _, fromInternalField, ok, err := getField(internalSchema, schemas, m.From) + fromSchema, _, fromField, ok, err := getField(s, schemas, m.From) if err != nil { return err } if !ok { - return fmt.Errorf("missing field %s on internal schema %s", m.From, internalSchema.ID) + return fmt.Errorf("failed to find field %s on schema %s", m.From, s.ID) } - fromSchema, _, _, _, err := getField(s, schemas, m.From) - if err != nil { - return err - } - - toSchema, toFieldName, toField, ok, err := getField(s, schemas, m.To) + toSchema, toFieldName, _, ok, err := getField(s, schemas, m.To) if err != nil { return err } _, ok = toSchema.ResourceFields[toFieldName] - if ok && !strings.Contains(m.To, "/") { + if ok && !strings.Contains(m.To, "/") && !m.DestDefined { return fmt.Errorf("field %s already exists on schema %s", m.To, s.ID) } - delete(fromSchema.ResourceFields, m.From) + if !m.NoDeleteFromField { + delete(fromSchema.ResourceFields, m.From) + } - toField.CodeName = convert.Capitalize(toFieldName) - toSchema.ResourceFields[toFieldName] = fromInternalField + if !m.DestDefined { + fromField.CodeName = convert.Capitalize(toFieldName) + toSchema.ResourceFields[toFieldName] = fromField + } return nil } diff --git a/vendor/github.com/rancher/norman/types/mapper/object.go b/vendor/github.com/rancher/norman/types/mapper/object.go new file mode 100644 index 00000000..21329574 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/object.go @@ -0,0 +1,25 @@ +package mapper + +import "github.com/rancher/norman/types" + +type Object struct { + types.Mappers +} + +func NewObject(mappers ...types.Mapper) Object { + return Object{ + Mappers: append([]types.Mapper{ + &Embed{Field: "metadata"}, + &Embed{Field: "spec", Optional: true}, + &ReadOnly{Field: "status", Optional: true}, + &Drop{"kind"}, + &Drop{"apiVersion"}, + &Scope{ + IfNot: types.NamespaceScope, + Mappers: []types.Mapper{ + &Drop{"namespace"}, + }, + }, + }, mappers...), + } +} diff --git a/vendor/github.com/rancher/norman/types/mapper/read_only.go b/vendor/github.com/rancher/norman/types/mapper/read_only.go new file mode 100644 index 00000000..71054496 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/read_only.go @@ -0,0 +1,41 @@ +package mapper + +import ( + "github.com/rancher/norman/types" +) + +type ReadOnly struct { + Field string + Optional bool +} + +func (r ReadOnly) FromInternal(data map[string]interface{}) { +} + +func (r ReadOnly) ToInternal(data map[string]interface{}) { +} + +func (r ReadOnly) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + if r.Field == "*" { + for name, field := range schema.ResourceFields { + field.Create = false + field.Update = false + schema.ResourceFields[name] = field + } + return nil + } + + if err := validateField(r.Field, schema); err != nil { + if r.Optional { + return nil + } + return err + } + + field := schema.ResourceFields[r.Field] + field.Create = false + field.Update = false + schema.ResourceFields[r.Field] = field + + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapper/rename_reference.go b/vendor/github.com/rancher/norman/types/mapper/rename_reference.go new file mode 100644 index 00000000..2dc4deb8 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/rename_reference.go @@ -0,0 +1,53 @@ +package mapper + +import ( + "strings" + + "github.com/rancher/norman/types" + "github.com/rancher/norman/types/definition" +) + +type RenameReference struct { + mapper types.Mapper +} + +func (r *RenameReference) FromInternal(data map[string]interface{}) { + if r.mapper != nil { + r.mapper.FromInternal(data) + } +} + +func (r *RenameReference) ToInternal(data map[string]interface{}) { + if r.mapper != nil { + r.mapper.ToInternal(data) + } +} + +func (r *RenameReference) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + var mappers []types.Mapper + for name, field := range schema.ResourceFields { + if definition.IsReferenceType(field.Type) && strings.HasSuffix(name, "Name") { + newName := strings.TrimSuffix(name, "Name") + "Id" + move := Move{From: name, To: newName} + if err := move.ModifySchema(schema, schemas); err != nil { + return err + } + + mappers = append(mappers, move) + } else if definition.IsArrayType(field.Type) && definition.IsReferenceType(definition.SubType(field.Type)) && strings.HasSuffix(name, "Names") { + newName := strings.TrimSuffix(name, "Names") + "Ids" + move := Move{From: name, To: newName} + if err := move.ModifySchema(schema, schemas); err != nil { + return err + } + + mappers = append(mappers, move) + } + } + + if len(mappers) > 0 { + r.mapper = types.Mappers(mappers) + } + + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapper/scope.go b/vendor/github.com/rancher/norman/types/mapper/scope.go new file mode 100644 index 00000000..fcb59694 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/scope.go @@ -0,0 +1,37 @@ +package mapper + +import ( + "github.com/rancher/norman/types" +) + +type Scope struct { + If types.TypeScope + IfNot types.TypeScope + Mappers []types.Mapper + run bool +} + +func (s *Scope) FromInternal(data map[string]interface{}) { + if s.run { + types.Mappers(s.Mappers).FromInternal(data) + } +} + +func (s *Scope) ToInternal(data map[string]interface{}) { + if s.run { + types.Mappers(s.Mappers).ToInternal(data) + } +} + +func (s *Scope) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + if s.If != "" { + s.run = schema.Scope == s.If + } + if s.IfNot != "" { + s.run = schema.Scope != s.IfNot + } + if s.run { + return types.Mappers(s.Mappers).ModifySchema(schema, schemas) + } + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapper/set_value.go b/vendor/github.com/rancher/norman/types/mapper/set_value.go new file mode 100644 index 00000000..4f9b553b --- /dev/null +++ b/vendor/github.com/rancher/norman/types/mapper/set_value.go @@ -0,0 +1,49 @@ +package mapper + +import ( + "fmt" + + "strings" + + "github.com/rancher/norman/types" +) + +type SetValue struct { + From, To string + Value interface{} + IfEq interface{} +} + +func (s SetValue) FromInternal(data map[string]interface{}) { + v, ok := GetValue(data, strings.Split(s.From, "/")...) + if !ok { + return + } + + if v == s.IfEq { + PutValue(data, s.Value, strings.Split(s.To, "/")...) + } +} + +func (s SetValue) ToInternal(data map[string]interface{}) { + v, ok := GetValue(data, strings.Split(s.To, "/")...) + if !ok { + return + } + + if v == s.Value { + PutValue(data, s.IfEq, strings.Split(s.From, "/")...) + } +} + +func (s SetValue) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { + _, _, _, ok, err := getField(schema, schemas, s.To) + if err != nil { + return err + } + if !ok { + return fmt.Errorf("failed to find defined field for %s on schemas %s", s.To, schema.ID) + } + + return nil +} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/slice_to_map.go b/vendor/github.com/rancher/norman/types/mapper/slice_to_map.go similarity index 83% rename from vendor/github.com/rancher/norman/types/mapping/mapper/slice_to_map.go rename to vendor/github.com/rancher/norman/types/mapper/slice_to_map.go index 1b94449c..b42d1e5c 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/slice_to_map.go +++ b/vendor/github.com/rancher/norman/types/mapper/slice_to_map.go @@ -31,7 +31,7 @@ func (s SliceToMap) FromInternal(data map[string]interface{}) { func (s SliceToMap) ToInternal(data map[string]interface{}) { datas, _ := data[s.Field].(map[string]interface{}) - result := []map[string]interface{}{} + var result []map[string]interface{} for name, item := range datas { mapItem, _ := item.(map[string]interface{}) @@ -47,14 +47,14 @@ func (s SliceToMap) ToInternal(data map[string]interface{}) { } func (s SliceToMap) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { - internalSchema, err := validateInternalField(s.Field, schema) + err := validateField(s.Field, schema) if err != nil { return err } - field := internalSchema.ResourceFields[s.Field] + field := schema.ResourceFields[s.Field] if !definition.IsArrayType(field.Type) { - return fmt.Errorf("field %s on %s is not an array", s.Field, internalSchema.ID) + return fmt.Errorf("field %s on %s is not an array", s.Field, schema.ID) } field.Type = "map[" + definition.SubType(field.Type) + "]" diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/union_embed.go b/vendor/github.com/rancher/norman/types/mapper/union_embed.go similarity index 100% rename from vendor/github.com/rancher/norman/types/mapping/mapper/union_embed.go rename to vendor/github.com/rancher/norman/types/mapper/union_embed.go diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/values.go b/vendor/github.com/rancher/norman/types/mapper/values.go similarity index 92% rename from vendor/github.com/rancher/norman/types/mapping/mapper/values.go rename to vendor/github.com/rancher/norman/types/mapper/values.go index f19b002d..41cdaba5 100644 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/values.go +++ b/vendor/github.com/rancher/norman/types/mapper/values.go @@ -6,9 +6,8 @@ func RemoveValue(data map[string]interface{}, keys ...string) (interface{}, bool val, ok := data[key] delete(data, key) return val, ok - } else { - data, _ = data[key].(map[string]interface{}) } + data, _ = data[key].(map[string]interface{}) } return nil, false @@ -51,9 +50,8 @@ func GetValue(data map[string]interface{}, keys ...string) (interface{}, bool) { if i == len(keys)-1 { val, ok := data[key] return val, ok - } else { - data, _ = data[key].(map[string]interface{}) } + data, _ = data[key].(map[string]interface{}) } return nil, false diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/check.go b/vendor/github.com/rancher/norman/types/mapping/mapper/check.go deleted file mode 100644 index 58993615..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/check.go +++ /dev/null @@ -1,28 +0,0 @@ -package mapper - -import ( - "fmt" - - "github.com/rancher/norman/types" -) - -func getInternal(schema *types.Schema) (*types.Schema, error) { - if schema.InternalSchema == nil { - return nil, fmt.Errorf("no internal schema found for schema %s", schema.ID) - } - - return schema.InternalSchema, nil -} - -func validateInternalField(field string, schema *types.Schema) (*types.Schema, error) { - internalSchema, err := getInternal(schema) - if err != nil { - return nil, err - } - - if _, ok := internalSchema.ResourceFields[field]; !ok { - return nil, fmt.Errorf("field %s missing on internal schema %s", field, schema.ID) - } - - return internalSchema, nil -} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/copy.go b/vendor/github.com/rancher/norman/types/mapping/mapper/copy.go deleted file mode 100644 index 45baab24..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/copy.go +++ /dev/null @@ -1,25 +0,0 @@ -package mapper - -import "strings" - -type Copy struct { - From, To string -} - -func (c Copy) Forward(data map[string]interface{}) { - val, ok := GetValue(data, strings.Split(c.From, "/")...) - if !ok { - return - } - - PutValue(data, val, strings.Split(c.To, "/")...) -} - -func (c Copy) Back(data map[string]interface{}) { - val, ok := GetValue(data, strings.Split(c.To, "/")...) - if !ok { - return - } - - PutValue(data, val, strings.Split(c.From, "/")...) -} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/label_field.go b/vendor/github.com/rancher/norman/types/mapping/mapper/label_field.go deleted file mode 100644 index 5a0babf9..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/label_field.go +++ /dev/null @@ -1,25 +0,0 @@ -package mapper - -//type LabelField struct { -// Fields []string -//} -// -//func (l LabelField) Forward(data map[string]interface{}) { -// for _, field := range l.Fields { -// moveForLabel(field).Forward(data) -// } -// -//} -// -//func (l LabelField) Back(data map[string]interface{}) { -// for _, field := range l.Fields { -// moveForLabel(field).Back(data) -// } -//} -// -//func moveForLabel(field string) *Enum { -// return &Enum{ -// From: field, -// To: "metadata/labels/io.cattle.field." + strings.ToLower(field), -// } -//} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/object.go b/vendor/github.com/rancher/norman/types/mapping/mapper/object.go deleted file mode 100644 index afb0a366..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/object.go +++ /dev/null @@ -1,19 +0,0 @@ -package mapper - -import "github.com/rancher/norman/types" - -type Object struct { - types.TypeMapper -} - -func NewObject(mappers ...types.Mapper) *Object { - return &Object{ - TypeMapper: types.TypeMapper{ - Mappers: append([]types.Mapper{ - &Embed{Field: "metadata"}, - &Embed{Field: "spec"}, - &ReadOnly{"status"}, - }, mappers...), - }, - } -} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/read_only.go b/vendor/github.com/rancher/norman/types/mapping/mapper/read_only.go deleted file mode 100644 index 8e5056e6..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/read_only.go +++ /dev/null @@ -1,30 +0,0 @@ -package mapper - -import ( - "fmt" - - "github.com/rancher/norman/types" -) - -type ReadOnly struct { - Field string -} - -func (r *ReadOnly) FromInternal(data map[string]interface{}) { -} - -func (r *ReadOnly) ToInternal(data map[string]interface{}) { -} - -func (r *ReadOnly) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { - field, ok := schema.ResourceFields[r.Field] - if !ok { - return fmt.Errorf("failed to find field %s on schema %s", r.Field, schema.ID) - } - - field.Create = false - field.Update = false - schema.ResourceFields[r.Field] = field - - return nil -} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/swap.go b/vendor/github.com/rancher/norman/types/mapping/mapper/swap.go deleted file mode 100644 index f135ac4c..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/swap.go +++ /dev/null @@ -1,20 +0,0 @@ -package mapper - -type Swap struct { - Left, Right string -} - -func (s Swap) Forward(data map[string]interface{}) { - rightValue, rightOk := data[s.Right] - leftValue, leftOk := data[s.Left] - if rightOk { - data[s.Left] = rightValue - } - if leftOk { - data[s.Right] = leftValue - } -} - -func (s Swap) Back(data map[string]interface{}) { - s.Forward(data) -} diff --git a/vendor/github.com/rancher/norman/types/mapping/mapper/type.go b/vendor/github.com/rancher/norman/types/mapping/mapper/type.go deleted file mode 100644 index ad5eac35..00000000 --- a/vendor/github.com/rancher/norman/types/mapping/mapper/type.go +++ /dev/null @@ -1 +0,0 @@ -package mapper diff --git a/vendor/github.com/rancher/norman/types/reflection.go b/vendor/github.com/rancher/norman/types/reflection.go index e0e5e968..2c7bd6ee 100644 --- a/vendor/github.com/rancher/norman/types/reflection.go +++ b/vendor/github.com/rancher/norman/types/reflection.go @@ -6,12 +6,17 @@ import ( "strconv" "strings" + "net/http" + "github.com/rancher/norman/types/convert" + "github.com/rancher/norman/types/definition" + "github.com/rancher/norman/types/slice" "github.com/sirupsen/logrus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) var ( + namespacedType = reflect.TypeOf(Namespaced{}) resourceType = reflect.TypeOf(Resource{}) typeType = reflect.TypeOf(metav1.TypeMeta{}) metaType = reflect.TypeOf(metav1.ObjectMeta{}) @@ -21,10 +26,17 @@ var ( } ) -func (s *Schemas) AddMapperForType(version *APIVersion, obj interface{}, mapper Mapper) *Schemas { +func (s *Schemas) AddMapperForType(version *APIVersion, obj interface{}, mapper ...Mapper) *Schemas { + if len(mapper) == 0 { + return s + } + t := reflect.TypeOf(obj) typeName := convert.LowerTitle(t.Name()) - return s.AddMapper(version, typeName, mapper) + if len(mapper) == 1 { + return s.AddMapper(version, typeName, mapper[0]) + } + return s.AddMapper(version, typeName, Mappers(mapper)) } func (s *Schemas) MustImport(version *APIVersion, obj interface{}, externalOverrides ...interface{}) *Schemas { @@ -36,8 +48,13 @@ func (s *Schemas) MustImport(version *APIVersion, obj interface{}, externalOverr return s } +func (s *Schemas) MustImportAndCustomize(version *APIVersion, obj interface{}, f func(*Schema), externalOverrides ...interface{}) *Schemas { + return s.MustImport(version, obj, externalOverrides...). + MustCustomizeType(version, obj, f) +} + func (s *Schemas) Import(version *APIVersion, obj interface{}, externalOverrides ...interface{}) (*Schema, error) { - types := []reflect.Type{} + var types []reflect.Type for _, override := range externalOverrides { types = append(types, reflect.TypeOf(override)) } @@ -61,6 +78,54 @@ func (s *Schemas) newSchemaFromType(version *APIVersion, t reflect.Type, typeNam return schema, nil } +func (s *Schemas) setupFilters(schema *Schema) { + if !slice.ContainsString(schema.CollectionMethods, http.MethodGet) { + return + } + for fieldName, field := range schema.ResourceFields { + var mods []ModifierType + switch field.Type { + case "enum": + mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn} + case "string": + mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn} + case "int": + mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn} + case "boolean": + mods = []ModifierType{ModifierEQ, ModifierNE} + default: + if definition.IsReferenceType(field.Type) { + mods = []ModifierType{ModifierEQ, ModifierNE, ModifierIn, ModifierNotIn} + } + } + + if len(mods) > 0 { + if schema.CollectionFilters == nil { + schema.CollectionFilters = map[string]Filter{} + } + schema.CollectionFilters[fieldName] = Filter{ + Modifiers: mods, + } + } + } +} + +func (s *Schemas) MustCustomizeType(version *APIVersion, obj interface{}, f func(*Schema)) *Schemas { + name := convert.LowerTitle(reflect.TypeOf(obj).Name()) + schema := s.Schema(version, name) + if schema == nil { + panic("Failed to find schema " + name) + } + + f(schema) + + if schema.SubContext != "" { + s.schemasBySubContext[schema.SubContext] = schema + } + + return s +} + func (s *Schemas) importType(version *APIVersion, t reflect.Type, overrides ...reflect.Type) (*Schema, error) { typeName := convert.LowerTitle(t.Name()) @@ -76,8 +141,13 @@ func (s *Schemas) importType(version *APIVersion, t reflect.Type, overrides ...r return nil, err } - mapper := s.mapper(&schema.Version, schema.ID) - if mapper != nil { + mappers := s.mapper(&schema.Version, schema.ID) + if schema.CanList() { + mappers = append(s.DefaultMappers, mappers...) + } + mappers = append(mappers, s.DefaultPostMappers...) + + if len(mappers) > 0 { copy, err := s.newSchemaFromType(version, t, typeName) if err != nil { return nil, err @@ -91,14 +161,16 @@ func (s *Schemas) importType(version *APIVersion, t reflect.Type, overrides ...r } } - if mapper == nil { - mapper = &TypeMapper{} + mapper := &typeMapper{ + Mappers: mappers, } if err := mapper.ModifySchema(schema, s); err != nil { return nil, err } + s.setupFilters(schema) + schema.Mapper = mapper s.AddSchema(schema) @@ -146,6 +218,9 @@ func (s *Schemas) readFields(schema *Schema, t reflect.Type) error { t = t.Elem() } if t.Kind() == reflect.Struct { + if t == namespacedType { + schema.Scope = NamespaceScope + } if err := s.readFields(schema, t); err != nil { return err } @@ -156,6 +231,9 @@ func (s *Schemas) readFields(schema *Schema, t reflect.Type) error { fieldName := jsonName if fieldName == "" { fieldName = convert.LowerTitle(field.Name) + if strings.HasSuffix(fieldName, "ID") { + fieldName = strings.TrimSuffix(fieldName, "ID") + "Id" + } } if blacklistNames[fieldName] { @@ -168,6 +246,7 @@ func (s *Schemas) readFields(schema *Schema, t reflect.Type) error { schemaField := Field{ Create: true, Update: true, + Nullable: true, CodeName: field.Name, } diff --git a/vendor/github.com/rancher/norman/types/schema_funcs.go b/vendor/github.com/rancher/norman/types/schema_funcs.go new file mode 100644 index 00000000..df6f6ff6 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/schema_funcs.go @@ -0,0 +1,26 @@ +package types + +import ( + "net/http" + + "github.com/rancher/norman/types/slice" +) + +func (s *Schema) MustCustomizeField(name string, f func(f Field) Field) *Schema { + field, ok := s.ResourceFields[name] + if !ok { + panic("Failed to find field " + name + " on schema " + s.ID) + } + s.ResourceFields[name] = f(field) + return s +} + +func (v *APIVersion) Equals(other *APIVersion) bool { + return v.Version == other.Version && + v.Group == other.Group && + v.Path == other.Path +} + +func (s *Schema) CanList() bool { + return slice.ContainsString(s.CollectionMethods, http.MethodGet) +} diff --git a/vendor/github.com/rancher/norman/types/schemas.go b/vendor/github.com/rancher/norman/types/schemas.go index bbdf4256..047021ee 100644 --- a/vendor/github.com/rancher/norman/types/schemas.go +++ b/vendor/github.com/rancher/norman/types/schemas.go @@ -16,17 +16,21 @@ type SchemaCollection struct { type SchemaInitFunc func(*Schemas) *Schemas type Schemas struct { - schemasByPath map[string]map[string]*Schema - mappers map[string]map[string]Mapper - versions []APIVersion - schemas []*Schema - errors []error + schemasByPath map[string]map[string]*Schema + schemasBySubContext map[string]*Schema + mappers map[string]map[string][]Mapper + DefaultMappers []Mapper + DefaultPostMappers []Mapper + versions []APIVersion + schemas []*Schema + errors []error } func NewSchemas() *Schemas { return &Schemas{ - schemasByPath: map[string]map[string]*Schema{}, - mappers: map[string]map[string]Mapper{}, + schemasByPath: map[string]map[string]*Schema{}, + schemasBySubContext: map[string]*Schema{}, + mappers: map[string]map[string][]Mapper{}, } } @@ -38,6 +42,14 @@ func (s *Schemas) Err() error { return NewErrors(s.errors) } +func (s *Schemas) SubContext(subContext string) *Schema { + return s.schemasBySubContext[subContext] +} + +func (s *Schemas) SubContextSchemas() map[string]*Schema { + return s.schemasBySubContext +} + func (s *Schemas) AddSchemas(schema *Schemas) *Schemas { for _, schema := range schema.Schemas() { s.AddSchema(schema) @@ -46,7 +58,7 @@ func (s *Schemas) AddSchemas(schema *Schemas) *Schemas { } func (s *Schemas) AddSchema(schema *Schema) *Schemas { - schema.Type = "schema" + schema.Type = "/v1-meta/schemas/schema" if schema.ID == "" { s.errors = append(s.errors, fmt.Errorf("ID is not set on schema: %v", schema)) return s @@ -64,6 +76,9 @@ func (s *Schemas) AddSchema(schema *Schema) *Schemas { if schema.CodeNamePlural == "" { schema.CodeNamePlural = name.GuessPluralName(schema.CodeName) } + if schema.BaseType == "" { + schema.BaseType = schema.ID + } schemas, ok := s.schemasByPath[schema.Version.Path] if !ok { @@ -77,20 +92,21 @@ func (s *Schemas) AddSchema(schema *Schema) *Schemas { s.schemas = append(s.schemas, schema) } + if schema.SubContext != "" { + s.schemasBySubContext[schema.SubContext] = schema + } + return s } func (s *Schemas) AddMapper(version *APIVersion, schemaID string, mapper Mapper) *Schemas { mappers, ok := s.mappers[version.Path] if !ok { - mappers = map[string]Mapper{} + mappers = map[string][]Mapper{} s.mappers[version.Path] = mappers } - if _, ok := mappers[schemaID]; !ok { - mappers[schemaID] = mapper - } - + mappers[schemaID] = append(mappers[schemaID], mapper) return s } @@ -106,7 +122,7 @@ func (s *Schemas) Schemas() []*Schema { return s.schemas } -func (s *Schemas) mapper(version *APIVersion, name string) Mapper { +func (s *Schemas) mapper(version *APIVersion, name string) []Mapper { var ( path string ) @@ -139,10 +155,10 @@ func (s *Schemas) Schema(version *APIVersion, name string) *Schema { path string ) - if strings.Contains(name, "/") { - idx := strings.LastIndex(name, "/") - path = name[0:idx] - name = name[idx+1:] + if strings.Contains(name, "/schemas/") { + parts := strings.SplitN(name, "/schemas/", 2) + path = parts[0] + name = parts[1] } else if version != nil { path = version.Path } else { diff --git a/vendor/github.com/rancher/norman/types/server_types.go b/vendor/github.com/rancher/norman/types/server_types.go index c719d965..fd452f82 100644 --- a/vendor/github.com/rancher/norman/types/server_types.go +++ b/vendor/github.com/rancher/norman/types/server_types.go @@ -27,12 +27,14 @@ func (r *RawResource) MarshalJSON() ([]byte, error) { if r.ID != "" { data["id"] = r.ID } + data["type"] = r.Type + data["baseType"] = r.Schema.BaseType data["links"] = r.Links if r.ActionLinks { data["actionLinks"] = r.Actions } else { - data["action"] = r.Actions + data["actions"] = r.Actions } return json.Marshal(data) } @@ -41,12 +43,19 @@ type ActionHandler func(actionName string, action *Action, request *APIContext) type RequestHandler func(request *APIContext) error +type QueryFilter func(opts QueryOptions, data []map[string]interface{}) []map[string]interface{} + type Validator func(request *APIContext, data map[string]interface{}) error type Formatter func(request *APIContext, resource *RawResource) type ErrorHandler func(request *APIContext, err error) +type SubContextAttributeProvider interface { + Query(apiContext *APIContext, schema *Schema) []*QueryCondition + Create(apiContext *APIContext, schema *Schema) map[string]interface{} +} + type ResponseWriter interface { Write(apiContext *APIContext, code int, obj interface{}) } @@ -57,22 +66,24 @@ type AccessControl interface { } type APIContext struct { - Action string - ID string - Type string - Link string - Method string - Schema *Schema - Schemas *Schemas - Version *APIVersion - ResponseFormat string - ReferenceValidator ReferenceValidator - ResponseWriter ResponseWriter - QueryOptions *QueryOptions - Body map[string]interface{} - URLBuilder URLBuilder - AccessControl AccessControl - SubContext map[string]interface{} + Action string + ID string + Type string + Link string + Method string + Schema *Schema + Schemas *Schemas + Version *APIVersion + ResponseFormat string + ReferenceValidator ReferenceValidator + ResponseWriter ResponseWriter + QueryFilter QueryFilter + SubContextAttributeProvider SubContextAttributeProvider + //QueryOptions *QueryOptions + URLBuilder URLBuilder + AccessControl AccessControl + SubContext map[string]string + Attributes map[string]interface{} Request *http.Request Response http.ResponseWriter @@ -82,6 +93,30 @@ func (r *APIContext) WriteResponse(code int, obj interface{}) { r.ResponseWriter.Write(r, code, obj) } +func (r *APIContext) FilterList(opts QueryOptions, obj []map[string]interface{}) []map[string]interface{} { + return r.QueryFilter(opts, obj) +} + +func (r *APIContext) FilterObject(opts QueryOptions, obj map[string]interface{}) map[string]interface{} { + opts.Pagination = nil + result := r.QueryFilter(opts, []map[string]interface{}{obj}) + if len(result) == 0 { + return nil + } + return result[0] +} + +func (r *APIContext) Filter(opts QueryOptions, obj interface{}) interface{} { + switch v := obj.(type) { + case []map[string]interface{}: + return r.FilterList(opts, v) + case map[string]interface{}: + return r.FilterObject(opts, v) + } + + return nil +} + var ( ASC = SortOrder("asc") DESC = SortOrder("desc") @@ -100,20 +135,21 @@ type ReferenceValidator interface { type URLBuilder interface { Current() string - Collection(schema *Schema) string + Collection(schema *Schema, versionOverride *APIVersion) string + SubContextCollection(subContext *Schema, contextName string, schema *Schema) string + SchemaLink(schema *Schema) string ResourceLink(resource *RawResource) string RelativeToRoot(path string) string - //Link(resource Resource, name string) string - //ReferenceLink(resource Resource) string - //ReferenceByIdLink(resourceType string, id string) string - Version(version string) string + Version(version APIVersion) string + Marker(marker string) string ReverseSort(order SortOrder) string + Sort(field string) string SetSubContext(subContext string) } type Store interface { ByID(apiContext *APIContext, schema *Schema, id string) (map[string]interface{}, error) - List(apiContext *APIContext, schema *Schema, opt *QueryOptions) ([]map[string]interface{}, error) + List(apiContext *APIContext, schema *Schema, opt QueryOptions) ([]map[string]interface{}, error) Create(apiContext *APIContext, schema *Schema, data map[string]interface{}) (map[string]interface{}, error) Update(apiContext *APIContext, schema *Schema, data map[string]interface{}, id string) (map[string]interface{}, error) Delete(apiContext *APIContext, schema *Schema, id string) error diff --git a/vendor/github.com/rancher/norman/types/slice/contains.go b/vendor/github.com/rancher/norman/types/slice/contains.go new file mode 100644 index 00000000..170f11d1 --- /dev/null +++ b/vendor/github.com/rancher/norman/types/slice/contains.go @@ -0,0 +1,10 @@ +package slice + +func ContainsString(slice []string, item string) bool { + for _, j := range slice { + if j == item { + return true + } + } + return false +} diff --git a/vendor/github.com/rancher/norman/types/types.go b/vendor/github.com/rancher/norman/types/types.go index 36eddca1..b465f86a 100644 --- a/vendor/github.com/rancher/norman/types/types.go +++ b/vendor/github.com/rancher/norman/types/types.go @@ -27,12 +27,23 @@ type Sort struct { Name string `json:"name,omitempty"` Order SortOrder `json:"order,omitempty"` Reverse string `json:"reverse,omitempty"` - Links map[string]string `json:"sortLinks,omitempty"` + Links map[string]string `json:"links,omitempty"` } +var ( + ModifierEQ ModifierType = "eq" + ModifierNE ModifierType = "ne" + ModifierNull ModifierType = "null" + ModifierNotNull ModifierType = "notnull" + ModifierIn ModifierType = "in" + ModifierNotIn ModifierType = "notin" +) + +type ModifierType string + type Condition struct { - Modifier string `json:"modifier,omitempty"` - Value interface{} `json:"value,omitempty"` + Modifier ModifierType `json:"modifier,omitempty"` + Value interface{} `json:"value,omitempty"` } type Pagination struct { @@ -40,6 +51,7 @@ type Pagination struct { First string `json:"first,omitempty"` Previous string `json:"previous,omitempty"` Next string `json:"next,omitempty"` + Last string `json:"last,omitempty"` Limit *int64 `json:"limit,omitempty"` Total *int64 `json:"total,omitempty"` Partial bool `json:"partial,omitempty"` @@ -59,12 +71,20 @@ type APIVersion struct { SubContexts map[string]bool `json:"subContext,omitempty"` } +type Namespaced struct{} + +var NamespaceScope TypeScope = "namespace" + +type TypeScope string + type Schema struct { ID string `json:"id,omitempty"` CodeName string `json:"-"` CodeNamePlural string `json:"-"` PkgName string `json:"-"` Type string `json:"type,omitempty"` + BaseType string `json:"baseType,omitempty"` + SubContext string `json:"-,omitempty"` Links map[string]string `json:"links"` Version APIVersion `json:"version"` PluralName string `json:"pluralName,omitempty"` @@ -75,6 +95,7 @@ type Schema struct { CollectionFields map[string]Field `json:"collectionFields,omitempty"` CollectionActions map[string]Action `json:"collectionActions,omitempty"` CollectionFilters map[string]Filter `json:"collectionFilters,omitempty"` + Scope TypeScope `json:"-"` InternalSchema *Schema `json:"-"` Mapper Mapper `json:"-"` @@ -115,7 +136,7 @@ type Action struct { } type Filter struct { - Modifiers []string `json:"modifiers,omitempty"` + Modifiers []ModifierType `json:"modifiers,omitempty"` } type ListOpts struct { From f66691267e745d15c8299c70353efabf892b4e64 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Tue, 21 Nov 2017 16:24:00 -0700 Subject: [PATCH 3/3] Update generated code --- ...luster_role_template_binding_controller.go | 2 +- ...erated_cluster_role_template_controller.go | 2 +- .../v1/zz_generated_deepcopy.go | 8 +- .../v1/zz_generated_k8s_client.go | 32 +-- ...pod_security_policy_template_controller.go | 2 +- .../v1/zz_generated_project_controller.go | 2 +- ...roject_role_template_binding_controller.go | 2 +- ...erated_project_role_template_controller.go | 2 +- .../v1/zz_generated_cluster_controller.go | 2 +- .../zz_generated_cluster_node_controller.go | 2 +- .../v1/schema/mapper/status.go | 9 +- .../v1/zz_generated_deepcopy.go | 251 ++++++++++++++++++ .../v1/zz_generated_k8s_client.go | 57 ++++ .../v1/zz_generated_workload_controller.go | 141 ++++++++++ .../authorization/v1/zz_generated_client.go | 4 +- .../v1/zz_generated_cluster_role_template.go | 32 ++- ...generated_cluster_role_template_binding.go | 36 ++- .../v1/zz_generated_host_port_range.go | 4 +- .../authorization/v1/zz_generated_id_range.go | 4 +- .../v1/zz_generated_object_meta.go | 52 ++-- .../zz_generated_pod_security_policy_spec.go | 34 +-- ..._generated_pod_security_policy_template.go | 60 ++++- .../authorization/v1/zz_generated_project.go | 30 ++- .../v1/zz_generated_project_role_template.go | 32 ++- ...generated_project_role_template_binding.go | 40 ++- .../v1/zz_generated_project_spec.go | 4 +- .../authorization/v1/zz_generated_status.go | 6 +- .../v1/zz_generated_status_cause.go | 4 +- .../v1/zz_generated_status_details.go | 2 +- client/cluster/v1/zz_generated_cluster.go | 24 +- .../cluster/v1/zz_generated_cluster_node.go | 64 +++-- .../cluster/v1/zz_generated_cluster_status.go | 2 +- .../v1/zz_generated_container_image.go | 2 +- .../v1/zz_generated_daemon_endpoint.go | 4 +- ...nerated_google_kubernetes_engine_config.go | 10 +- .../v1/zz_generated_kube_apiservice.go | 4 +- .../zz_generated_kube_controller_service.go | 8 +- .../v1/zz_generated_kubelet_service.go | 4 +- .../v1/zz_generated_node_daemon_endpoints.go | 2 +- client/cluster/v1/zz_generated_node_spec.go | 2 +- client/cluster/v1/zz_generated_node_status.go | 20 +- client/cluster/v1/zz_generated_object_meta.go | 34 +-- ...erated_rancher_kubernetes_engine_config.go | 14 +- .../v1/zz_generated_rke_config_services.go | 14 +- client/cluster/v1/zz_generated_status.go | 6 +- .../cluster/v1/zz_generated_status_cause.go | 4 +- .../cluster/v1/zz_generated_status_details.go | 2 +- ...d_aws_elastic_block_store_volume_source.go | 4 +- .../zz_generated_azure_disk_volume_source.go | 4 +- .../zz_generated_azure_file_volume_source.go | 2 +- .../workload/v1/zz_generated_capabilities.go | 10 +- .../v1/zz_generated_ceph_fsvolume_source.go | 2 +- .../v1/zz_generated_cinder_volume_source.go | 2 +- client/workload/v1/zz_generated_client.go | 10 +- client/workload/v1/zz_generated_container.go | 40 +-- .../v1/zz_generated_container_image.go | 2 +- .../v1/zz_generated_container_port.go | 4 +- ...zz_generated_container_state_terminated.go | 4 +- .../v1/zz_generated_container_status.go | 18 +- client/workload/v1/zz_generated_cpu_info.go | 2 +- .../v1/zz_generated_daemon_endpoint.go | 4 +- client/workload/v1/zz_generated_daemon_set.go | 159 +++++++++++ .../v1/zz_generated_daemon_set_spec.go | 68 +++++ .../v1/zz_generated_daemon_set_status.go | 26 ++ ...zz_generated_daemon_set_update_strategy.go | 12 + .../workload/v1/zz_generated_deploy_config.go | 14 + .../workload/v1/zz_generated_deploy_params.go | 18 -- .../v1/zz_generated_deploy_strategy.go | 18 ++ client/workload/v1/zz_generated_deployment.go | 114 ++++++-- .../zz_generated_deployment_global_config.go | 12 + .../v1/zz_generated_deployment_job_config.go | 14 + .../zz_generated_deployment_ordered_config.go | 14 + ...zz_generated_deployment_parallel_config.go | 14 + .../v1/zz_generated_deployment_spec.go | 70 ++++- .../v1/zz_generated_deployment_status.go | 12 +- .../v1/zz_generated_environment_from.go | 2 +- .../v1/zz_generated_fc_volume_source.go | 6 +- .../v1/zz_generated_flex_volume_source.go | 2 +- ...rated_gce_persistent_disk_volume_source.go | 4 +- .../zz_generated_glusterfs_volume_source.go | 6 +- client/workload/v1/zz_generated_handler.go | 2 +- .../v1/zz_generated_iscsi_volume_source.go | 12 +- .../workload/v1/zz_generated_memory_info.go | 2 +- client/workload/v1/zz_generated_namespace.go | 54 ++-- .../v1/zz_generated_nfs_volume_source.go | 2 +- client/workload/v1/zz_generated_node.go | 84 +++--- .../v1/zz_generated_node_daemon_endpoints.go | 2 +- client/workload/v1/zz_generated_node_info.go | 8 +- client/workload/v1/zz_generated_node_spec.go | 2 +- .../workload/v1/zz_generated_node_status.go | 4 +- .../workload/v1/zz_generated_object_meta.go | 34 +-- .../zz_generated_persistent_volume_claim.go | 40 ++- ..._generated_persistent_volume_claim_spec.go | 10 +- ...d_persistent_volume_claim_volume_source.go | 2 +- client/workload/v1/zz_generated_pod.go | 58 ++-- .../v1/zz_generated_pod_security_context.go | 18 +- client/workload/v1/zz_generated_pod_spec.go | 26 +- client/workload/v1/zz_generated_pod_status.go | 8 +- .../v1/zz_generated_pod_template_spec.go | 56 +++- .../v1/zz_generated_portworx_volume_source.go | 2 +- .../zz_generated_preferred_scheduling_term.go | 4 +- client/workload/v1/zz_generated_probe.go | 12 +- .../v1/zz_generated_quobyte_volume_source.go | 2 +- .../v1/zz_generated_rbd_volume_source.go | 18 +- .../workload/v1/zz_generated_replica_set.go | 106 ++++++-- .../v1/zz_generated_replica_set_spec.go | 62 ++++- .../v1/zz_generated_replica_set_status.go | 10 +- .../v1/zz_generated_replication_controller.go | 155 +++++++++++ ...erated_replication_controller_condition.go | 18 ++ ...z_generated_replication_controller_spec.go | 64 +++++ ...generated_replication_controller_status.go | 20 ++ .../zz_generated_rolling_update_daemon_set.go | 10 + .../v1/zz_generated_scale_iovolume_source.go | 4 +- .../v1/zz_generated_security_context.go | 16 +- .../workload/v1/zz_generated_stateful_set.go | 122 ++++++--- .../v1/zz_generated_stateful_set_spec.go | 78 +++++- .../v1/zz_generated_stateful_set_status.go | 10 +- client/workload/v1/zz_generated_status.go | 6 +- .../workload/v1/zz_generated_status_cause.go | 4 +- .../v1/zz_generated_status_details.go | 2 +- .../zz_generated_storage_osvolume_source.go | 2 +- client/workload/v1/zz_generated_volume.go | 8 +- .../workload/v1/zz_generated_volume_mount.go | 2 +- ...zz_generated_weighted_pod_affinity_term.go | 4 +- client/workload/v1/zz_generated_workload.go | 155 +++++++++++ .../workload/v1/zz_generated_workload_spec.go | 64 +++++ .../v1/zz_generated_workload_status.go | 8 + 127 files changed, 2486 insertions(+), 677 deletions(-) create mode 100644 apis/workload.cattle.io/v1/zz_generated_deepcopy.go create mode 100644 apis/workload.cattle.io/v1/zz_generated_k8s_client.go create mode 100644 apis/workload.cattle.io/v1/zz_generated_workload_controller.go create mode 100644 client/workload/v1/zz_generated_daemon_set.go create mode 100644 client/workload/v1/zz_generated_daemon_set_spec.go create mode 100644 client/workload/v1/zz_generated_daemon_set_status.go create mode 100644 client/workload/v1/zz_generated_daemon_set_update_strategy.go create mode 100644 client/workload/v1/zz_generated_deploy_config.go delete mode 100644 client/workload/v1/zz_generated_deploy_params.go create mode 100644 client/workload/v1/zz_generated_deploy_strategy.go create mode 100644 client/workload/v1/zz_generated_deployment_global_config.go create mode 100644 client/workload/v1/zz_generated_deployment_job_config.go create mode 100644 client/workload/v1/zz_generated_deployment_ordered_config.go create mode 100644 client/workload/v1/zz_generated_deployment_parallel_config.go create mode 100644 client/workload/v1/zz_generated_replication_controller.go create mode 100644 client/workload/v1/zz_generated_replication_controller_condition.go create mode 100644 client/workload/v1/zz_generated_replication_controller_spec.go create mode 100644 client/workload/v1/zz_generated_replication_controller_status.go create mode 100644 client/workload/v1/zz_generated_rolling_update_daemon_set.go create mode 100644 client/workload/v1/zz_generated_workload.go create mode 100644 client/workload/v1/zz_generated_workload_spec.go create mode 100644 client/workload/v1/zz_generated_workload_status.go diff --git a/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_binding_controller.go b/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_binding_controller.go index 8936d8be..ec2bb400 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_binding_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_binding_controller.go @@ -38,7 +38,7 @@ type ClusterRoleTemplateBindingController interface { Informer() cache.SharedIndexInformer AddHandler(handler ClusterRoleTemplateBindingHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ClusterRoleTemplateBindingInterface interface { diff --git a/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_controller.go b/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_controller.go index eb05a6bb..c43d5060 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_cluster_role_template_controller.go @@ -38,7 +38,7 @@ type ClusterRoleTemplateController interface { Informer() cache.SharedIndexInformer AddHandler(handler ClusterRoleTemplateHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ClusterRoleTemplateInterface interface { diff --git a/apis/authorization.cattle.io/v1/zz_generated_deepcopy.go b/apis/authorization.cattle.io/v1/zz_generated_deepcopy.go index b3849b55..579ce288 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_deepcopy.go +++ b/apis/authorization.cattle.io/v1/zz_generated_deepcopy.go @@ -17,8 +17,8 @@ func (in *ClusterRoleTemplate) DeepCopyInto(out *ClusterRoleTemplate) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.ClusterRoleTemplates != nil { - in, out := &in.ClusterRoleTemplates, &out.ClusterRoleTemplates + if in.ClusterRoleTemplateNames != nil { + in, out := &in.ClusterRoleTemplateNames, &out.ClusterRoleTemplateNames *out = make([]string, len(*in)) copy(*out, *in) } @@ -276,8 +276,8 @@ func (in *ProjectRoleTemplate) DeepCopyInto(out *ProjectRoleTemplate) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.ProjectRoleTemplates != nil { - in, out := &in.ProjectRoleTemplates, &out.ProjectRoleTemplates + if in.ProjectRoleTemplateNames != nil { + in, out := &in.ProjectRoleTemplateNames, &out.ProjectRoleTemplateNames *out = make([]string, len(*in)) copy(*out, *in) } diff --git a/apis/authorization.cattle.io/v1/zz_generated_k8s_client.go b/apis/authorization.cattle.io/v1/zz_generated_k8s_client.go index 70c74fe8..69e1371b 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_k8s_client.go +++ b/apis/authorization.cattle.io/v1/zz_generated_k8s_client.go @@ -13,8 +13,8 @@ type Interface interface { ProjectsGetter ProjectRoleTemplatesGetter - PodSecurityPolicyTemplatesGetter ProjectRoleTemplateBindingsGetter + PodSecurityPolicyTemplatesGetter ClusterRoleTemplatesGetter ClusterRoleTemplateBindingsGetter } @@ -25,8 +25,8 @@ type Client struct { projectControllers map[string]ProjectController projectRoleTemplateControllers map[string]ProjectRoleTemplateController - podSecurityPolicyTemplateControllers map[string]PodSecurityPolicyTemplateController projectRoleTemplateBindingControllers map[string]ProjectRoleTemplateBindingController + podSecurityPolicyTemplateControllers map[string]PodSecurityPolicyTemplateController clusterRoleTemplateControllers map[string]ClusterRoleTemplateController clusterRoleTemplateBindingControllers map[string]ClusterRoleTemplateBindingController } @@ -47,8 +47,8 @@ func NewForConfig(config rest.Config) (Interface, error) { projectControllers: map[string]ProjectController{}, projectRoleTemplateControllers: map[string]ProjectRoleTemplateController{}, - podSecurityPolicyTemplateControllers: map[string]PodSecurityPolicyTemplateController{}, projectRoleTemplateBindingControllers: map[string]ProjectRoleTemplateBindingController{}, + podSecurityPolicyTemplateControllers: map[string]PodSecurityPolicyTemplateController{}, clusterRoleTemplateControllers: map[string]ClusterRoleTemplateController{}, clusterRoleTemplateBindingControllers: map[string]ClusterRoleTemplateBindingController{}, }, nil @@ -84,19 +84,6 @@ func (c *Client) ProjectRoleTemplates(namespace string) ProjectRoleTemplateInter } } -type PodSecurityPolicyTemplatesGetter interface { - PodSecurityPolicyTemplates(namespace string) PodSecurityPolicyTemplateInterface -} - -func (c *Client) PodSecurityPolicyTemplates(namespace string) PodSecurityPolicyTemplateInterface { - objectClient := clientbase.NewObjectClient(namespace, c.restClient, &PodSecurityPolicyTemplateResource, PodSecurityPolicyTemplateGroupVersionKind, podSecurityPolicyTemplateFactory{}) - return &podSecurityPolicyTemplateClient{ - ns: namespace, - client: c, - objectClient: objectClient, - } -} - type ProjectRoleTemplateBindingsGetter interface { ProjectRoleTemplateBindings(namespace string) ProjectRoleTemplateBindingInterface } @@ -110,6 +97,19 @@ func (c *Client) ProjectRoleTemplateBindings(namespace string) ProjectRoleTempla } } +type PodSecurityPolicyTemplatesGetter interface { + PodSecurityPolicyTemplates(namespace string) PodSecurityPolicyTemplateInterface +} + +func (c *Client) PodSecurityPolicyTemplates(namespace string) PodSecurityPolicyTemplateInterface { + objectClient := clientbase.NewObjectClient(namespace, c.restClient, &PodSecurityPolicyTemplateResource, PodSecurityPolicyTemplateGroupVersionKind, podSecurityPolicyTemplateFactory{}) + return &podSecurityPolicyTemplateClient{ + ns: namespace, + client: c, + objectClient: objectClient, + } +} + type ClusterRoleTemplatesGetter interface { ClusterRoleTemplates(namespace string) ClusterRoleTemplateInterface } diff --git a/apis/authorization.cattle.io/v1/zz_generated_pod_security_policy_template_controller.go b/apis/authorization.cattle.io/v1/zz_generated_pod_security_policy_template_controller.go index 2d344c1c..e92030d7 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_pod_security_policy_template_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_pod_security_policy_template_controller.go @@ -38,7 +38,7 @@ type PodSecurityPolicyTemplateController interface { Informer() cache.SharedIndexInformer AddHandler(handler PodSecurityPolicyTemplateHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type PodSecurityPolicyTemplateInterface interface { diff --git a/apis/authorization.cattle.io/v1/zz_generated_project_controller.go b/apis/authorization.cattle.io/v1/zz_generated_project_controller.go index a30d737f..6aec1b14 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_project_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_project_controller.go @@ -38,7 +38,7 @@ type ProjectController interface { Informer() cache.SharedIndexInformer AddHandler(handler ProjectHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ProjectInterface interface { diff --git a/apis/authorization.cattle.io/v1/zz_generated_project_role_template_binding_controller.go b/apis/authorization.cattle.io/v1/zz_generated_project_role_template_binding_controller.go index 34db85ba..83c327ca 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_project_role_template_binding_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_project_role_template_binding_controller.go @@ -38,7 +38,7 @@ type ProjectRoleTemplateBindingController interface { Informer() cache.SharedIndexInformer AddHandler(handler ProjectRoleTemplateBindingHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ProjectRoleTemplateBindingInterface interface { diff --git a/apis/authorization.cattle.io/v1/zz_generated_project_role_template_controller.go b/apis/authorization.cattle.io/v1/zz_generated_project_role_template_controller.go index 2392e97d..028d47c5 100644 --- a/apis/authorization.cattle.io/v1/zz_generated_project_role_template_controller.go +++ b/apis/authorization.cattle.io/v1/zz_generated_project_role_template_controller.go @@ -38,7 +38,7 @@ type ProjectRoleTemplateController interface { Informer() cache.SharedIndexInformer AddHandler(handler ProjectRoleTemplateHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ProjectRoleTemplateInterface interface { diff --git a/apis/cluster.cattle.io/v1/zz_generated_cluster_controller.go b/apis/cluster.cattle.io/v1/zz_generated_cluster_controller.go index 25bdc58f..c8579f86 100644 --- a/apis/cluster.cattle.io/v1/zz_generated_cluster_controller.go +++ b/apis/cluster.cattle.io/v1/zz_generated_cluster_controller.go @@ -38,7 +38,7 @@ type ClusterController interface { Informer() cache.SharedIndexInformer AddHandler(handler ClusterHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ClusterInterface interface { diff --git a/apis/cluster.cattle.io/v1/zz_generated_cluster_node_controller.go b/apis/cluster.cattle.io/v1/zz_generated_cluster_node_controller.go index e2c45034..d51a2685 100644 --- a/apis/cluster.cattle.io/v1/zz_generated_cluster_node_controller.go +++ b/apis/cluster.cattle.io/v1/zz_generated_cluster_node_controller.go @@ -38,7 +38,7 @@ type ClusterNodeController interface { Informer() cache.SharedIndexInformer AddHandler(handler ClusterNodeHandlerFunc) Enqueue(namespace, name string) - Start(threadiness int, ctx context.Context) error + Start(ctx context.Context, threadiness int) error } type ClusterNodeInterface interface { diff --git a/apis/workload.cattle.io/v1/schema/mapper/status.go b/apis/workload.cattle.io/v1/schema/mapper/status.go index 653611f9..3ef5d7bf 100644 --- a/apis/workload.cattle.io/v1/schema/mapper/status.go +++ b/apis/workload.cattle.io/v1/schema/mapper/status.go @@ -17,10 +17,12 @@ func (s Status) ToInternal(data map[string]interface{}) { func (s Status) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { schema.ResourceFields["state"] = types.Field{ - Type: "string", + CodeName: "State", + Type: "string", } schema.ResourceFields["transitioning"] = types.Field{ - Type: "enum", + CodeName: "Transitioning", + Type: "enum", Options: []string{ "yes", "no", @@ -28,7 +30,8 @@ func (s Status) ModifySchema(schema *types.Schema, schemas *types.Schemas) error }, } schema.ResourceFields["transitioningMessage"] = types.Field{ - Type: "string", + CodeName: "TransitioningMessage", + Type: "string", } return nil } diff --git a/apis/workload.cattle.io/v1/zz_generated_deepcopy.go b/apis/workload.cattle.io/v1/zz_generated_deepcopy.go new file mode 100644 index 00000000..d5a5a6e0 --- /dev/null +++ b/apis/workload.cattle.io/v1/zz_generated_deepcopy.go @@ -0,0 +1,251 @@ +package v1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeployConfig) DeepCopyInto(out *DeployConfig) { + *out = *in + if in.DeploymentStrategy != nil { + in, out := &in.DeploymentStrategy, &out.DeploymentStrategy + if *in == nil { + *out = nil + } else { + *out = new(DeployStrategy) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployConfig. +func (in *DeployConfig) DeepCopy() *DeployConfig { + if in == nil { + return nil + } + out := new(DeployConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeployStrategy) DeepCopyInto(out *DeployStrategy) { + *out = *in + if in.ParallelConfig != nil { + in, out := &in.ParallelConfig, &out.ParallelConfig + if *in == nil { + *out = nil + } else { + *out = new(DeploymentParallelConfig) + **out = **in + } + } + if in.JobConfig != nil { + in, out := &in.JobConfig, &out.JobConfig + if *in == nil { + *out = nil + } else { + *out = new(DeploymentJobConfig) + **out = **in + } + } + if in.OrderedConfig != nil { + in, out := &in.OrderedConfig, &out.OrderedConfig + if *in == nil { + *out = nil + } else { + *out = new(DeploymentOrderedConfig) + **out = **in + } + } + if in.GlobalConfig != nil { + in, out := &in.GlobalConfig, &out.GlobalConfig + if *in == nil { + *out = nil + } else { + *out = new(DeploymentGlobalConfig) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployStrategy. +func (in *DeployStrategy) DeepCopy() *DeployStrategy { + if in == nil { + return nil + } + out := new(DeployStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentGlobalConfig) DeepCopyInto(out *DeploymentGlobalConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentGlobalConfig. +func (in *DeploymentGlobalConfig) DeepCopy() *DeploymentGlobalConfig { + if in == nil { + return nil + } + out := new(DeploymentGlobalConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentJobConfig) DeepCopyInto(out *DeploymentJobConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentJobConfig. +func (in *DeploymentJobConfig) DeepCopy() *DeploymentJobConfig { + if in == nil { + return nil + } + out := new(DeploymentJobConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentOrderedConfig) DeepCopyInto(out *DeploymentOrderedConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentOrderedConfig. +func (in *DeploymentOrderedConfig) DeepCopy() *DeploymentOrderedConfig { + if in == nil { + return nil + } + out := new(DeploymentOrderedConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentParallelConfig) DeepCopyInto(out *DeploymentParallelConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentParallelConfig. +func (in *DeploymentParallelConfig) DeepCopy() *DeploymentParallelConfig { + if in == nil { + return nil + } + out := new(DeploymentParallelConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Workload) DeepCopyInto(out *Workload) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + if in.Status != nil { + in, out := &in.Status, &out.Status + if *in == nil { + *out = nil + } else { + *out = new(WorkloadStatus) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workload. +func (in *Workload) DeepCopy() *Workload { + if in == nil { + return nil + } + out := new(Workload) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Workload) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WorkloadList) DeepCopyInto(out *WorkloadList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Workload, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadList. +func (in *WorkloadList) DeepCopy() *WorkloadList { + if in == nil { + return nil + } + out := new(WorkloadList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *WorkloadList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WorkloadSpec) DeepCopyInto(out *WorkloadSpec) { + *out = *in + in.DeployConfig.DeepCopyInto(&out.DeployConfig) + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadSpec. +func (in *WorkloadSpec) DeepCopy() *WorkloadSpec { + if in == nil { + return nil + } + out := new(WorkloadSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadStatus. +func (in *WorkloadStatus) DeepCopy() *WorkloadStatus { + if in == nil { + return nil + } + out := new(WorkloadStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/workload.cattle.io/v1/zz_generated_k8s_client.go b/apis/workload.cattle.io/v1/zz_generated_k8s_client.go new file mode 100644 index 00000000..d90ea1ae --- /dev/null +++ b/apis/workload.cattle.io/v1/zz_generated_k8s_client.go @@ -0,0 +1,57 @@ +package v1 + +import ( + "sync" + + "github.com/rancher/norman/clientbase" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/rest" +) + +type Interface interface { + RESTClient() rest.Interface + + WorkloadsGetter +} + +type Client struct { + sync.Mutex + restClient rest.Interface + + workloadControllers map[string]WorkloadController +} + +func NewForConfig(config rest.Config) (Interface, error) { + if config.NegotiatedSerializer == nil { + configConfig := dynamic.ContentConfig() + config.NegotiatedSerializer = configConfig.NegotiatedSerializer + } + + restClient, err := rest.UnversionedRESTClientFor(&config) + if err != nil { + return nil, err + } + + return &Client{ + restClient: restClient, + + workloadControllers: map[string]WorkloadController{}, + }, nil +} + +func (c *Client) RESTClient() rest.Interface { + return c.restClient +} + +type WorkloadsGetter interface { + Workloads(namespace string) WorkloadInterface +} + +func (c *Client) Workloads(namespace string) WorkloadInterface { + objectClient := clientbase.NewObjectClient(namespace, c.restClient, &WorkloadResource, WorkloadGroupVersionKind, workloadFactory{}) + return &workloadClient{ + ns: namespace, + client: c, + objectClient: objectClient, + } +} diff --git a/apis/workload.cattle.io/v1/zz_generated_workload_controller.go b/apis/workload.cattle.io/v1/zz_generated_workload_controller.go new file mode 100644 index 00000000..994ed389 --- /dev/null +++ b/apis/workload.cattle.io/v1/zz_generated_workload_controller.go @@ -0,0 +1,141 @@ +package v1 + +import ( + "context" + + "github.com/rancher/norman/clientbase" + "github.com/rancher/norman/controller" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" +) + +var ( + WorkloadGroupVersionKind = schema.GroupVersionKind{ + Version: "v1", + Group: "workload.cattle.io", + Kind: "Workload", + } + WorkloadResource = metav1.APIResource{ + Name: "workloads", + SingularName: "workload", + Namespaced: false, + Kind: WorkloadGroupVersionKind.Kind, + } +) + +type WorkloadList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Workload +} + +type WorkloadHandlerFunc func(key string, obj *Workload) error + +type WorkloadController interface { + Informer() cache.SharedIndexInformer + AddHandler(handler WorkloadHandlerFunc) + Enqueue(namespace, name string) + Start(ctx context.Context, threadiness int) error +} + +type WorkloadInterface interface { + Create(*Workload) (*Workload, error) + Get(name string, opts metav1.GetOptions) (*Workload, error) + Update(*Workload) (*Workload, error) + Delete(name string, options *metav1.DeleteOptions) error + List(opts metav1.ListOptions) (*WorkloadList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error + Controller() WorkloadController +} + +type workloadController struct { + controller.GenericController +} + +func (c *workloadController) AddHandler(handler WorkloadHandlerFunc) { + c.GenericController.AddHandler(func(key string) error { + obj, exists, err := c.Informer().GetStore().GetByKey(key) + if err != nil { + return err + } + if !exists { + return handler(key, nil) + } + return handler(key, obj.(*Workload)) + }) +} + +type workloadFactory struct { +} + +func (c workloadFactory) Object() runtime.Object { + return &Workload{} +} + +func (c workloadFactory) List() runtime.Object { + return &WorkloadList{} +} + +func (s *workloadClient) Controller() WorkloadController { + s.client.Lock() + defer s.client.Unlock() + + c, ok := s.client.workloadControllers[s.ns] + if ok { + return c + } + + genericController := controller.NewGenericController(WorkloadGroupVersionKind.Kind+"Controller", + s.objectClient) + + c = &workloadController{ + GenericController: genericController, + } + + s.client.workloadControllers[s.ns] = c + + return c +} + +type workloadClient struct { + client *Client + ns string + objectClient *clientbase.ObjectClient + controller WorkloadController +} + +func (s *workloadClient) Create(o *Workload) (*Workload, error) { + obj, err := s.objectClient.Create(o) + return obj.(*Workload), err +} + +func (s *workloadClient) Get(name string, opts metav1.GetOptions) (*Workload, error) { + obj, err := s.objectClient.Get(name, opts) + return obj.(*Workload), err +} + +func (s *workloadClient) Update(o *Workload) (*Workload, error) { + obj, err := s.objectClient.Update(o.Name, o) + return obj.(*Workload), err +} + +func (s *workloadClient) Delete(name string, options *metav1.DeleteOptions) error { + return s.objectClient.Delete(name, options) +} + +func (s *workloadClient) List(opts metav1.ListOptions) (*WorkloadList, error) { + obj, err := s.objectClient.List(opts) + return obj.(*WorkloadList), err +} + +func (s *workloadClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + return s.objectClient.Watch(opts) +} + +func (s *workloadClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error { + return s.objectClient.DeleteCollection(deleteOpts, listOpts) +} diff --git a/client/authorization/v1/zz_generated_client.go b/client/authorization/v1/zz_generated_client.go index 4a18c775..c7f18cac 100644 --- a/client/authorization/v1/zz_generated_client.go +++ b/client/authorization/v1/zz_generated_client.go @@ -9,8 +9,8 @@ type Client struct { Project ProjectOperations ProjectRoleTemplate ProjectRoleTemplateOperations - PodSecurityPolicyTemplate PodSecurityPolicyTemplateOperations ProjectRoleTemplateBinding ProjectRoleTemplateBindingOperations + PodSecurityPolicyTemplate PodSecurityPolicyTemplateOperations ClusterRoleTemplate ClusterRoleTemplateOperations ClusterRoleTemplateBinding ClusterRoleTemplateBindingOperations } @@ -27,8 +27,8 @@ func NewClient(opts *clientbase.ClientOpts) (*Client, error) { client.Project = newProjectClient(client) client.ProjectRoleTemplate = newProjectRoleTemplateClient(client) - client.PodSecurityPolicyTemplate = newPodSecurityPolicyTemplateClient(client) client.ProjectRoleTemplateBinding = newProjectRoleTemplateBindingClient(client) + client.PodSecurityPolicyTemplate = newPodSecurityPolicyTemplateClient(client) client.ClusterRoleTemplate = newClusterRoleTemplateClient(client) client.ClusterRoleTemplateBinding = newClusterRoleTemplateBindingClient(client) diff --git a/client/authorization/v1/zz_generated_cluster_role_template.go b/client/authorization/v1/zz_generated_cluster_role_template.go index 2b8d3945..d84569be 100644 --- a/client/authorization/v1/zz_generated_cluster_role_template.go +++ b/client/authorization/v1/zz_generated_cluster_role_template.go @@ -5,21 +5,31 @@ import ( ) const ( - ClusterRoleTemplateType = "clusterRoleTemplate" - ClusterRoleTemplateFieldAPIVersion = "apiVersion" - ClusterRoleTemplateFieldClusterRoleTemplates = "clusterRoleTemplates" - ClusterRoleTemplateFieldKind = "kind" - ClusterRoleTemplateFieldObjectMeta = "objectMeta" - ClusterRoleTemplateFieldRules = "rules" + ClusterRoleTemplateType = "clusterRoleTemplate" + ClusterRoleTemplateFieldAnnotations = "annotations" + ClusterRoleTemplateFieldClusterRoleTemplateIds = "clusterRoleTemplateIds" + ClusterRoleTemplateFieldCreated = "created" + ClusterRoleTemplateFieldLabels = "labels" + ClusterRoleTemplateFieldName = "name" + ClusterRoleTemplateFieldOwnerReferences = "ownerReferences" + ClusterRoleTemplateFieldRemoved = "removed" + ClusterRoleTemplateFieldResourcePath = "resourcePath" + ClusterRoleTemplateFieldRules = "rules" + ClusterRoleTemplateFieldUuid = "uuid" ) type ClusterRoleTemplate struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - ClusterRoleTemplates []string `json:"clusterRoleTemplates,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Rules []PolicyRule `json:"rules,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + ClusterRoleTemplateIds []string `json:"clusterRoleTemplateIds,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Rules []PolicyRule `json:"rules,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ClusterRoleTemplateCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_cluster_role_template_binding.go b/client/authorization/v1/zz_generated_cluster_role_template_binding.go index 7d1486dd..7112982a 100644 --- a/client/authorization/v1/zz_generated_cluster_role_template_binding.go +++ b/client/authorization/v1/zz_generated_cluster_role_template_binding.go @@ -5,23 +5,33 @@ import ( ) const ( - ClusterRoleTemplateBindingType = "clusterRoleTemplateBinding" - ClusterRoleTemplateBindingFieldAPIVersion = "apiVersion" - ClusterRoleTemplateBindingFieldClusterName = "clusterName" - ClusterRoleTemplateBindingFieldClusterRoleTemplateName = "clusterRoleTemplateName" - ClusterRoleTemplateBindingFieldKind = "kind" - ClusterRoleTemplateBindingFieldObjectMeta = "objectMeta" - ClusterRoleTemplateBindingFieldSubject = "subject" + ClusterRoleTemplateBindingType = "clusterRoleTemplateBinding" + ClusterRoleTemplateBindingFieldAnnotations = "annotations" + ClusterRoleTemplateBindingFieldClusterId = "clusterId" + ClusterRoleTemplateBindingFieldClusterRoleTemplateId = "clusterRoleTemplateId" + ClusterRoleTemplateBindingFieldCreated = "created" + ClusterRoleTemplateBindingFieldLabels = "labels" + ClusterRoleTemplateBindingFieldName = "name" + ClusterRoleTemplateBindingFieldOwnerReferences = "ownerReferences" + ClusterRoleTemplateBindingFieldRemoved = "removed" + ClusterRoleTemplateBindingFieldResourcePath = "resourcePath" + ClusterRoleTemplateBindingFieldSubject = "subject" + ClusterRoleTemplateBindingFieldUuid = "uuid" ) type ClusterRoleTemplateBinding struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - ClusterName string `json:"clusterName,omitempty"` - ClusterRoleTemplateName string `json:"clusterRoleTemplateName,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Subject Subject `json:"subject,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + ClusterId string `json:"clusterId,omitempty"` + ClusterRoleTemplateId string `json:"clusterRoleTemplateId,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Subject *Subject `json:"subject,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ClusterRoleTemplateBindingCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_host_port_range.go b/client/authorization/v1/zz_generated_host_port_range.go index 144ece56..f05a16d4 100644 --- a/client/authorization/v1/zz_generated_host_port_range.go +++ b/client/authorization/v1/zz_generated_host_port_range.go @@ -7,6 +7,6 @@ const ( ) type HostPortRange struct { - Max int64 `json:"max,omitempty"` - Min int64 `json:"min,omitempty"` + Max *int64 `json:"max,omitempty"` + Min *int64 `json:"min,omitempty"` } diff --git a/client/authorization/v1/zz_generated_id_range.go b/client/authorization/v1/zz_generated_id_range.go index af18ad5a..16bcc2d8 100644 --- a/client/authorization/v1/zz_generated_id_range.go +++ b/client/authorization/v1/zz_generated_id_range.go @@ -7,6 +7,6 @@ const ( ) type IDRange struct { - Max int64 `json:"max,omitempty"` - Min int64 `json:"min,omitempty"` + Max *int64 `json:"max,omitempty"` + Min *int64 `json:"min,omitempty"` } diff --git a/client/authorization/v1/zz_generated_object_meta.go b/client/authorization/v1/zz_generated_object_meta.go index 06f7d602..86acd6ff 100644 --- a/client/authorization/v1/zz_generated_object_meta.go +++ b/client/authorization/v1/zz_generated_object_meta.go @@ -1,40 +1,26 @@ package client const ( - ObjectMetaType = "objectMeta" - ObjectMetaFieldAnnotations = "annotations" - ObjectMetaFieldClusterName = "clusterName" - ObjectMetaFieldCreationTimestamp = "creationTimestamp" - ObjectMetaFieldDeletionGracePeriodSeconds = "deletionGracePeriodSeconds" - ObjectMetaFieldDeletionTimestamp = "deletionTimestamp" - ObjectMetaFieldFinalizers = "finalizers" - ObjectMetaFieldGenerateName = "generateName" - ObjectMetaFieldGeneration = "generation" - ObjectMetaFieldInitializers = "initializers" - ObjectMetaFieldLabels = "labels" - ObjectMetaFieldName = "name" - ObjectMetaFieldNamespace = "namespace" - ObjectMetaFieldOwnerReferences = "ownerReferences" - ObjectMetaFieldResourceVersion = "resourceVersion" - ObjectMetaFieldSelfLink = "selfLink" - ObjectMetaFieldUID = "uid" + ObjectMetaType = "objectMeta" + ObjectMetaFieldAnnotations = "annotations" + ObjectMetaFieldCreated = "created" + ObjectMetaFieldLabels = "labels" + ObjectMetaFieldName = "name" + ObjectMetaFieldNamespace = "namespace" + ObjectMetaFieldOwnerReferences = "ownerReferences" + ObjectMetaFieldRemoved = "removed" + ObjectMetaFieldResourcePath = "resourcePath" + ObjectMetaFieldUuid = "uuid" ) type ObjectMeta struct { - Annotations map[string]string `json:"annotations,omitempty"` - ClusterName string `json:"clusterName,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Finalizers []string `json:"finalizers,omitempty"` - GenerateName string `json:"generateName,omitempty"` - Generation int64 `json:"generation,omitempty"` - Initializers *Initializers `json:"initializers,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` - ResourceVersion string `json:"resourceVersion,omitempty"` - SelfLink string `json:"selfLink,omitempty"` - UID string `json:"uid,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Uuid string `json:"uuid,omitempty"` } diff --git a/client/authorization/v1/zz_generated_pod_security_policy_spec.go b/client/authorization/v1/zz_generated_pod_security_policy_spec.go index b07876e0..aefe965c 100644 --- a/client/authorization/v1/zz_generated_pod_security_policy_spec.go +++ b/client/authorization/v1/zz_generated_pod_security_policy_spec.go @@ -22,21 +22,21 @@ const ( ) type PodSecurityPolicySpec struct { - AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` - AllowedCapabilities []string `json:"allowedCapabilities,omitempty"` - AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty"` - DefaultAddCapabilities []string `json:"defaultAddCapabilities,omitempty"` - DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty"` - FSGroup FSGroupStrategyOptions `json:"fsGroup,omitempty"` - HostIPC bool `json:"hostIPC,omitempty"` - HostNetwork bool `json:"hostNetwork,omitempty"` - HostPID bool `json:"hostPID,omitempty"` - HostPorts []HostPortRange `json:"hostPorts,omitempty"` - Privileged bool `json:"privileged,omitempty"` - ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"` - RequiredDropCapabilities []string `json:"requiredDropCapabilities,omitempty"` - RunAsUser RunAsUserStrategyOptions `json:"runAsUser,omitempty"` - SELinux SELinuxStrategyOptions `json:"seLinux,omitempty"` - SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups,omitempty"` - Volumes []string `json:"volumes,omitempty"` + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` + AllowedCapabilities []string `json:"allowedCapabilities,omitempty"` + AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty"` + DefaultAddCapabilities []string `json:"defaultAddCapabilities,omitempty"` + DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty"` + FSGroup *FSGroupStrategyOptions `json:"fsGroup,omitempty"` + HostIPC *bool `json:"hostIPC,omitempty"` + HostNetwork *bool `json:"hostNetwork,omitempty"` + HostPID *bool `json:"hostPID,omitempty"` + HostPorts []HostPortRange `json:"hostPorts,omitempty"` + Privileged *bool `json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + RequiredDropCapabilities []string `json:"requiredDropCapabilities,omitempty"` + RunAsUser *RunAsUserStrategyOptions `json:"runAsUser,omitempty"` + SELinux *SELinuxStrategyOptions `json:"seLinux,omitempty"` + SupplementalGroups *SupplementalGroupsStrategyOptions `json:"supplementalGroups,omitempty"` + Volumes []string `json:"volumes,omitempty"` } diff --git a/client/authorization/v1/zz_generated_pod_security_policy_template.go b/client/authorization/v1/zz_generated_pod_security_policy_template.go index 1947f15c..33157111 100644 --- a/client/authorization/v1/zz_generated_pod_security_policy_template.go +++ b/client/authorization/v1/zz_generated_pod_security_policy_template.go @@ -5,19 +5,61 @@ import ( ) const ( - PodSecurityPolicyTemplateType = "podSecurityPolicyTemplate" - PodSecurityPolicyTemplateFieldAPIVersion = "apiVersion" - PodSecurityPolicyTemplateFieldKind = "kind" - PodSecurityPolicyTemplateFieldObjectMeta = "objectMeta" - PodSecurityPolicyTemplateFieldSpec = "spec" + PodSecurityPolicyTemplateType = "podSecurityPolicyTemplate" + PodSecurityPolicyTemplateFieldAllowPrivilegeEscalation = "allowPrivilegeEscalation" + PodSecurityPolicyTemplateFieldAllowedCapabilities = "allowedCapabilities" + PodSecurityPolicyTemplateFieldAllowedHostPaths = "allowedHostPaths" + PodSecurityPolicyTemplateFieldAnnotations = "annotations" + PodSecurityPolicyTemplateFieldCreated = "created" + PodSecurityPolicyTemplateFieldDefaultAddCapabilities = "defaultAddCapabilities" + PodSecurityPolicyTemplateFieldDefaultAllowPrivilegeEscalation = "defaultAllowPrivilegeEscalation" + PodSecurityPolicyTemplateFieldFSGroup = "fsGroup" + PodSecurityPolicyTemplateFieldHostIPC = "hostIPC" + PodSecurityPolicyTemplateFieldHostNetwork = "hostNetwork" + PodSecurityPolicyTemplateFieldHostPID = "hostPID" + PodSecurityPolicyTemplateFieldHostPorts = "hostPorts" + PodSecurityPolicyTemplateFieldLabels = "labels" + PodSecurityPolicyTemplateFieldName = "name" + PodSecurityPolicyTemplateFieldOwnerReferences = "ownerReferences" + PodSecurityPolicyTemplateFieldPrivileged = "privileged" + PodSecurityPolicyTemplateFieldReadOnlyRootFilesystem = "readOnlyRootFilesystem" + PodSecurityPolicyTemplateFieldRemoved = "removed" + PodSecurityPolicyTemplateFieldRequiredDropCapabilities = "requiredDropCapabilities" + PodSecurityPolicyTemplateFieldResourcePath = "resourcePath" + PodSecurityPolicyTemplateFieldRunAsUser = "runAsUser" + PodSecurityPolicyTemplateFieldSELinux = "seLinux" + PodSecurityPolicyTemplateFieldSupplementalGroups = "supplementalGroups" + PodSecurityPolicyTemplateFieldUuid = "uuid" + PodSecurityPolicyTemplateFieldVolumes = "volumes" ) type PodSecurityPolicyTemplate struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Spec PodSecurityPolicySpec `json:"spec,omitempty"` + AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` + AllowedCapabilities []string `json:"allowedCapabilities,omitempty"` + AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + DefaultAddCapabilities []string `json:"defaultAddCapabilities,omitempty"` + DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty"` + FSGroup *FSGroupStrategyOptions `json:"fsGroup,omitempty"` + HostIPC *bool `json:"hostIPC,omitempty"` + HostNetwork *bool `json:"hostNetwork,omitempty"` + HostPID *bool `json:"hostPID,omitempty"` + HostPorts []HostPortRange `json:"hostPorts,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Privileged *bool `json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + Removed string `json:"removed,omitempty"` + RequiredDropCapabilities []string `json:"requiredDropCapabilities,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + RunAsUser *RunAsUserStrategyOptions `json:"runAsUser,omitempty"` + SELinux *SELinuxStrategyOptions `json:"seLinux,omitempty"` + SupplementalGroups *SupplementalGroupsStrategyOptions `json:"supplementalGroups,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes []string `json:"volumes,omitempty"` } type PodSecurityPolicyTemplateCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_project.go b/client/authorization/v1/zz_generated_project.go index 7f5728ff..395af204 100644 --- a/client/authorization/v1/zz_generated_project.go +++ b/client/authorization/v1/zz_generated_project.go @@ -5,19 +5,31 @@ import ( ) const ( - ProjectType = "project" - ProjectFieldAPIVersion = "apiVersion" - ProjectFieldKind = "kind" - ProjectFieldObjectMeta = "objectMeta" - ProjectFieldSpec = "spec" + ProjectType = "project" + ProjectFieldAnnotations = "annotations" + ProjectFieldClusterId = "clusterId" + ProjectFieldCreated = "created" + ProjectFieldId = "id" + ProjectFieldLabels = "labels" + ProjectFieldName = "name" + ProjectFieldOwnerReferences = "ownerReferences" + ProjectFieldRemoved = "removed" + ProjectFieldResourcePath = "resourcePath" + ProjectFieldUuid = "uuid" ) type Project struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Spec ProjectSpec `json:"spec,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + ClusterId string `json:"clusterId,omitempty"` + Created string `json:"created,omitempty"` + Id string `json:"id,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ProjectCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_project_role_template.go b/client/authorization/v1/zz_generated_project_role_template.go index 4aa63b72..0b6d04cf 100644 --- a/client/authorization/v1/zz_generated_project_role_template.go +++ b/client/authorization/v1/zz_generated_project_role_template.go @@ -5,21 +5,31 @@ import ( ) const ( - ProjectRoleTemplateType = "projectRoleTemplate" - ProjectRoleTemplateFieldAPIVersion = "apiVersion" - ProjectRoleTemplateFieldKind = "kind" - ProjectRoleTemplateFieldObjectMeta = "objectMeta" - ProjectRoleTemplateFieldProjectRoleTemplates = "projectRoleTemplates" - ProjectRoleTemplateFieldRules = "rules" + ProjectRoleTemplateType = "projectRoleTemplate" + ProjectRoleTemplateFieldAnnotations = "annotations" + ProjectRoleTemplateFieldCreated = "created" + ProjectRoleTemplateFieldLabels = "labels" + ProjectRoleTemplateFieldName = "name" + ProjectRoleTemplateFieldOwnerReferences = "ownerReferences" + ProjectRoleTemplateFieldProjectRoleTemplateIds = "projectRoleTemplateIds" + ProjectRoleTemplateFieldRemoved = "removed" + ProjectRoleTemplateFieldResourcePath = "resourcePath" + ProjectRoleTemplateFieldRules = "rules" + ProjectRoleTemplateFieldUuid = "uuid" ) type ProjectRoleTemplate struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - ProjectRoleTemplates []string `json:"projectRoleTemplates,omitempty"` - Rules []PolicyRule `json:"rules,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + ProjectRoleTemplateIds []string `json:"projectRoleTemplateIds,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Rules []PolicyRule `json:"rules,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ProjectRoleTemplateCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_project_role_template_binding.go b/client/authorization/v1/zz_generated_project_role_template_binding.go index 95a7c8ef..a1d4b9c6 100644 --- a/client/authorization/v1/zz_generated_project_role_template_binding.go +++ b/client/authorization/v1/zz_generated_project_role_template_binding.go @@ -5,23 +5,37 @@ import ( ) const ( - ProjectRoleTemplateBindingType = "projectRoleTemplateBinding" - ProjectRoleTemplateBindingFieldAPIVersion = "apiVersion" - ProjectRoleTemplateBindingFieldKind = "kind" - ProjectRoleTemplateBindingFieldObjectMeta = "objectMeta" - ProjectRoleTemplateBindingFieldProjectName = "projectName" - ProjectRoleTemplateBindingFieldProjectRoleTemplateName = "projectRoleTemplateName" - ProjectRoleTemplateBindingFieldSubject = "subject" + ProjectRoleTemplateBindingType = "projectRoleTemplateBinding" + ProjectRoleTemplateBindingFieldAnnotations = "annotations" + ProjectRoleTemplateBindingFieldCreated = "created" + ProjectRoleTemplateBindingFieldLabels = "labels" + ProjectRoleTemplateBindingFieldName = "name" + ProjectRoleTemplateBindingFieldOwnerReferences = "ownerReferences" + ProjectRoleTemplateBindingFieldProjectId = "projectId" + ProjectRoleTemplateBindingFieldProjectRoleTemplateId = "projectRoleTemplateId" + ProjectRoleTemplateBindingFieldRemoved = "removed" + ProjectRoleTemplateBindingFieldResourcePath = "resourcePath" + ProjectRoleTemplateBindingFieldSubjectKind = "subjectKind" + ProjectRoleTemplateBindingFieldSubjectName = "subjectName" + ProjectRoleTemplateBindingFieldSubjectNamespace = "subjectNamespace" + ProjectRoleTemplateBindingFieldUuid = "uuid" ) type ProjectRoleTemplateBinding struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - ProjectName string `json:"projectName,omitempty"` - ProjectRoleTemplateName string `json:"projectRoleTemplateName,omitempty"` - Subject Subject `json:"subject,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + ProjectId string `json:"projectId,omitempty"` + ProjectRoleTemplateId string `json:"projectRoleTemplateId,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + SubjectKind string `json:"subjectKind,omitempty"` + SubjectName string `json:"subjectName,omitempty"` + SubjectNamespace string `json:"subjectNamespace,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ProjectRoleTemplateBindingCollection struct { types.Collection diff --git a/client/authorization/v1/zz_generated_project_spec.go b/client/authorization/v1/zz_generated_project_spec.go index 4863b39e..8980b7c1 100644 --- a/client/authorization/v1/zz_generated_project_spec.go +++ b/client/authorization/v1/zz_generated_project_spec.go @@ -2,11 +2,11 @@ package client const ( ProjectSpecType = "projectSpec" - ProjectSpecFieldClusterName = "clusterName" + ProjectSpecFieldClusterId = "clusterId" ProjectSpecFieldDisplayName = "displayName" ) type ProjectSpec struct { - ClusterName string `json:"clusterName,omitempty"` + ClusterId string `json:"clusterId,omitempty"` DisplayName string `json:"displayName,omitempty"` } diff --git a/client/authorization/v1/zz_generated_status.go b/client/authorization/v1/zz_generated_status.go index e1861b57..bd06240a 100644 --- a/client/authorization/v1/zz_generated_status.go +++ b/client/authorization/v1/zz_generated_status.go @@ -6,7 +6,7 @@ const ( StatusFieldCode = "code" StatusFieldDetails = "details" StatusFieldKind = "kind" - StatusFieldListMeta = "listMeta" + StatusFieldListMeta = "metadata" StatusFieldMessage = "message" StatusFieldReason = "reason" StatusFieldStatus = "status" @@ -14,10 +14,10 @@ const ( type Status struct { APIVersion string `json:"apiVersion,omitempty"` - Code int64 `json:"code,omitempty"` + Code *int64 `json:"code,omitempty"` Details *StatusDetails `json:"details,omitempty"` Kind string `json:"kind,omitempty"` - ListMeta ListMeta `json:"listMeta,omitempty"` + ListMeta *ListMeta `json:"metadata,omitempty"` Message string `json:"message,omitempty"` Reason string `json:"reason,omitempty"` Status string `json:"status,omitempty"` diff --git a/client/authorization/v1/zz_generated_status_cause.go b/client/authorization/v1/zz_generated_status_cause.go index c0818a1a..e2dcd46f 100644 --- a/client/authorization/v1/zz_generated_status_cause.go +++ b/client/authorization/v1/zz_generated_status_cause.go @@ -4,11 +4,11 @@ const ( StatusCauseType = "statusCause" StatusCauseFieldField = "field" StatusCauseFieldMessage = "message" - StatusCauseFieldType = "type" + StatusCauseFieldType = "reason" ) type StatusCause struct { Field string `json:"field,omitempty"` Message string `json:"message,omitempty"` - Type string `json:"type,omitempty"` + Type string `json:"reason,omitempty"` } diff --git a/client/authorization/v1/zz_generated_status_details.go b/client/authorization/v1/zz_generated_status_details.go index 78cdf859..8c68523c 100644 --- a/client/authorization/v1/zz_generated_status_details.go +++ b/client/authorization/v1/zz_generated_status_details.go @@ -15,6 +15,6 @@ type StatusDetails struct { Group string `json:"group,omitempty"` Kind string `json:"kind,omitempty"` Name string `json:"name,omitempty"` - RetryAfterSeconds int64 `json:"retryAfterSeconds,omitempty"` + RetryAfterSeconds *int64 `json:"retryAfterSeconds,omitempty"` UID string `json:"uid,omitempty"` } diff --git a/client/cluster/v1/zz_generated_cluster.go b/client/cluster/v1/zz_generated_cluster.go index 038f513d..6b422f92 100644 --- a/client/cluster/v1/zz_generated_cluster.go +++ b/client/cluster/v1/zz_generated_cluster.go @@ -6,36 +6,34 @@ import ( const ( ClusterType = "cluster" - ClusterFieldAPIVersion = "apiVersion" ClusterFieldAnnotations = "annotations" ClusterFieldAzureKubernetesServiceConfig = "azureKubernetesServiceConfig" - ClusterFieldCreationTimestamp = "creationTimestamp" - ClusterFieldDeletionTimestamp = "deletionTimestamp" + ClusterFieldCreated = "created" ClusterFieldGoogleKubernetesEngineConfig = "googleKubernetesEngineConfig" - ClusterFieldKind = "kind" ClusterFieldLabels = "labels" ClusterFieldName = "name" - ClusterFieldNamespace = "namespace" + ClusterFieldOwnerReferences = "ownerReferences" ClusterFieldRancherKubernetesEngineConfig = "rancherKubernetesEngineConfig" + ClusterFieldRemoved = "removed" + ClusterFieldResourcePath = "resourcePath" ClusterFieldStatus = "status" - ClusterFieldUID = "uid" + ClusterFieldUuid = "uuid" ) type Cluster struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` AzureKubernetesServiceConfig *AzureKubernetesServiceConfig `json:"azureKubernetesServiceConfig,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` + Created string `json:"created,omitempty"` GoogleKubernetesEngineConfig *GoogleKubernetesEngineConfig `json:"googleKubernetesEngineConfig,omitempty"` - Kind string `json:"kind,omitempty"` Labels map[string]string `json:"labels,omitempty"` Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` RancherKubernetesEngineConfig *RancherKubernetesEngineConfig `json:"rancherKubernetesEngineConfig,omitempty"` - Status ClusterStatus `json:"status,omitempty"` - UID string `json:"uid,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Status *ClusterStatus `json:"status,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ClusterCollection struct { types.Collection diff --git a/client/cluster/v1/zz_generated_cluster_node.go b/client/cluster/v1/zz_generated_cluster_node.go index 3e037795..9862b3f9 100644 --- a/client/cluster/v1/zz_generated_cluster_node.go +++ b/client/cluster/v1/zz_generated_cluster_node.go @@ -5,43 +5,41 @@ import ( ) const ( - ClusterNodeType = "clusterNode" - ClusterNodeFieldAPIVersion = "apiVersion" - ClusterNodeFieldAnnotations = "annotations" - ClusterNodeFieldConfigSource = "configSource" - ClusterNodeFieldCreationTimestamp = "creationTimestamp" - ClusterNodeFieldDeletionTimestamp = "deletionTimestamp" - ClusterNodeFieldExternalID = "externalID" - ClusterNodeFieldKind = "kind" - ClusterNodeFieldLabels = "labels" - ClusterNodeFieldName = "name" - ClusterNodeFieldNamespace = "namespace" - ClusterNodeFieldPodCIDR = "podCIDR" - ClusterNodeFieldProviderID = "providerID" - ClusterNodeFieldStatus = "status" - ClusterNodeFieldTaints = "taints" - ClusterNodeFieldUID = "uid" - ClusterNodeFieldUnschedulable = "unschedulable" + ClusterNodeType = "clusterNode" + ClusterNodeFieldAnnotations = "annotations" + ClusterNodeFieldConfigSource = "configSource" + ClusterNodeFieldCreated = "created" + ClusterNodeFieldExternalID = "externalID" + ClusterNodeFieldLabels = "labels" + ClusterNodeFieldName = "name" + ClusterNodeFieldOwnerReferences = "ownerReferences" + ClusterNodeFieldPodCIDR = "podCIDR" + ClusterNodeFieldProviderID = "providerID" + ClusterNodeFieldRemoved = "removed" + ClusterNodeFieldResourcePath = "resourcePath" + ClusterNodeFieldStatus = "status" + ClusterNodeFieldTaints = "taints" + ClusterNodeFieldUnschedulable = "unschedulable" + ClusterNodeFieldUuid = "uuid" ) type ClusterNode struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - ConfigSource *NodeConfigSource `json:"configSource,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - ExternalID string `json:"externalID,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - PodCIDR string `json:"podCIDR,omitempty"` - ProviderID string `json:"providerID,omitempty"` - Status NodeStatus `json:"status,omitempty"` - Taints []Taint `json:"taints,omitempty"` - UID string `json:"uid,omitempty"` - Unschedulable bool `json:"unschedulable,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + ConfigSource *NodeConfigSource `json:"configSource,omitempty"` + Created string `json:"created,omitempty"` + ExternalID string `json:"externalID,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PodCIDR string `json:"podCIDR,omitempty"` + ProviderID string `json:"providerID,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Status *NodeStatus `json:"status,omitempty"` + Taints []Taint `json:"taints,omitempty"` + Unschedulable *bool `json:"unschedulable,omitempty"` + Uuid string `json:"uuid,omitempty"` } type ClusterNodeCollection struct { types.Collection diff --git a/client/cluster/v1/zz_generated_cluster_status.go b/client/cluster/v1/zz_generated_cluster_status.go index e05ec552..962ab624 100644 --- a/client/cluster/v1/zz_generated_cluster_status.go +++ b/client/cluster/v1/zz_generated_cluster_status.go @@ -15,7 +15,7 @@ const ( type ClusterStatus struct { APIEndpoint string `json:"apiEndpoint,omitempty"` Allocatable map[string]string `json:"allocatable,omitempty"` - AppliedSpec ClusterSpec `json:"appliedSpec,omitempty"` + AppliedSpec *ClusterSpec `json:"appliedSpec,omitempty"` CACert string `json:"caCert,omitempty"` Capacity map[string]string `json:"capacity,omitempty"` ComponentStatuses []ClusterComponentStatus `json:"componentStatuses,omitempty"` diff --git a/client/cluster/v1/zz_generated_container_image.go b/client/cluster/v1/zz_generated_container_image.go index ecc38df4..343e5325 100644 --- a/client/cluster/v1/zz_generated_container_image.go +++ b/client/cluster/v1/zz_generated_container_image.go @@ -8,5 +8,5 @@ const ( type ContainerImage struct { Names []string `json:"names,omitempty"` - SizeBytes int64 `json:"sizeBytes,omitempty"` + SizeBytes *int64 `json:"sizeBytes,omitempty"` } diff --git a/client/cluster/v1/zz_generated_daemon_endpoint.go b/client/cluster/v1/zz_generated_daemon_endpoint.go index af5e3552..d68fae2a 100644 --- a/client/cluster/v1/zz_generated_daemon_endpoint.go +++ b/client/cluster/v1/zz_generated_daemon_endpoint.go @@ -2,9 +2,9 @@ package client const ( DaemonEndpointType = "daemonEndpoint" - DaemonEndpointFieldPort = "port" + DaemonEndpointFieldPort = "Port" ) type DaemonEndpoint struct { - Port int64 `json:"port,omitempty"` + Port *int64 `json:"Port,omitempty"` } diff --git a/client/cluster/v1/zz_generated_google_kubernetes_engine_config.go b/client/cluster/v1/zz_generated_google_kubernetes_engine_config.go index 47466a96..56820f85 100644 --- a/client/cluster/v1/zz_generated_google_kubernetes_engine_config.go +++ b/client/cluster/v1/zz_generated_google_kubernetes_engine_config.go @@ -12,7 +12,7 @@ const ( GoogleKubernetesEngineConfigFieldMasterVersion = "masterVersion" GoogleKubernetesEngineConfigFieldNodeCount = "nodeCount" GoogleKubernetesEngineConfigFieldNodeVersion = "nodeVersion" - GoogleKubernetesEngineConfigFieldProjectID = "projectID" + GoogleKubernetesEngineConfigFieldProjectID = "projectId" GoogleKubernetesEngineConfigFieldZone = "zone" ) @@ -20,13 +20,13 @@ type GoogleKubernetesEngineConfig struct { ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"` CredentialPath string `json:"credentialPath,omitempty"` Description string `json:"description,omitempty"` - DiskSizeGb int64 `json:"diskSizeGb,omitempty"` - EnableAlphaFeature bool `json:"enableAlphaFeature,omitempty"` + DiskSizeGb *int64 `json:"diskSizeGb,omitempty"` + EnableAlphaFeature *bool `json:"enableAlphaFeature,omitempty"` Labels map[string]string `json:"labels,omitempty"` MachineType string `json:"machineType,omitempty"` MasterVersion string `json:"masterVersion,omitempty"` - NodeCount int64 `json:"nodeCount,omitempty"` + NodeCount *int64 `json:"nodeCount,omitempty"` NodeVersion string `json:"nodeVersion,omitempty"` - ProjectID string `json:"projectID,omitempty"` + ProjectID string `json:"projectId,omitempty"` Zone string `json:"zone,omitempty"` } diff --git a/client/cluster/v1/zz_generated_kube_apiservice.go b/client/cluster/v1/zz_generated_kube_apiservice.go index 80a2ce28..fb64169e 100644 --- a/client/cluster/v1/zz_generated_kube_apiservice.go +++ b/client/cluster/v1/zz_generated_kube_apiservice.go @@ -4,11 +4,11 @@ const ( KubeAPIServiceType = "kubeAPIService" KubeAPIServiceFieldExtraArgs = "extraArgs" KubeAPIServiceFieldImage = "image" - KubeAPIServiceFieldServiceClusterIPRange = "serviceClusterIPRange" + KubeAPIServiceFieldServiceClusterIPRange = "serviceClusterIpRange" ) type KubeAPIService struct { ExtraArgs map[string]string `json:"extraArgs,omitempty"` Image string `json:"image,omitempty"` - ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty"` + ServiceClusterIPRange string `json:"serviceClusterIpRange,omitempty"` } diff --git a/client/cluster/v1/zz_generated_kube_controller_service.go b/client/cluster/v1/zz_generated_kube_controller_service.go index 10032cd5..e539710d 100644 --- a/client/cluster/v1/zz_generated_kube_controller_service.go +++ b/client/cluster/v1/zz_generated_kube_controller_service.go @@ -2,15 +2,15 @@ package client const ( KubeControllerServiceType = "kubeControllerService" - KubeControllerServiceFieldClusterCIDR = "clusterCIDR" + KubeControllerServiceFieldClusterCIDR = "clusterCidr" KubeControllerServiceFieldExtraArgs = "extraArgs" KubeControllerServiceFieldImage = "image" - KubeControllerServiceFieldServiceClusterIPRange = "serviceClusterIPRange" + KubeControllerServiceFieldServiceClusterIPRange = "serviceClusterIpRange" ) type KubeControllerService struct { - ClusterCIDR string `json:"clusterCIDR,omitempty"` + ClusterCIDR string `json:"clusterCidr,omitempty"` ExtraArgs map[string]string `json:"extraArgs,omitempty"` Image string `json:"image,omitempty"` - ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty"` + ServiceClusterIPRange string `json:"serviceClusterIpRange,omitempty"` } diff --git a/client/cluster/v1/zz_generated_kubelet_service.go b/client/cluster/v1/zz_generated_kubelet_service.go index eded86bf..b8ac27cb 100644 --- a/client/cluster/v1/zz_generated_kubelet_service.go +++ b/client/cluster/v1/zz_generated_kubelet_service.go @@ -2,7 +2,7 @@ package client const ( KubeletServiceType = "kubeletService" - KubeletServiceFieldClusterDNSServer = "clusterDNSServer" + KubeletServiceFieldClusterDNSServer = "clusterDnsServer" KubeletServiceFieldClusterDomain = "clusterDomain" KubeletServiceFieldExtraArgs = "extraArgs" KubeletServiceFieldImage = "image" @@ -10,7 +10,7 @@ const ( ) type KubeletService struct { - ClusterDNSServer string `json:"clusterDNSServer,omitempty"` + ClusterDNSServer string `json:"clusterDnsServer,omitempty"` ClusterDomain string `json:"clusterDomain,omitempty"` ExtraArgs map[string]string `json:"extraArgs,omitempty"` Image string `json:"image,omitempty"` diff --git a/client/cluster/v1/zz_generated_node_daemon_endpoints.go b/client/cluster/v1/zz_generated_node_daemon_endpoints.go index d16a91d3..e379cf60 100644 --- a/client/cluster/v1/zz_generated_node_daemon_endpoints.go +++ b/client/cluster/v1/zz_generated_node_daemon_endpoints.go @@ -6,5 +6,5 @@ const ( ) type NodeDaemonEndpoints struct { - KubeletEndpoint DaemonEndpoint `json:"kubeletEndpoint,omitempty"` + KubeletEndpoint *DaemonEndpoint `json:"kubeletEndpoint,omitempty"` } diff --git a/client/cluster/v1/zz_generated_node_spec.go b/client/cluster/v1/zz_generated_node_spec.go index 5c1c81ae..c7e37e9d 100644 --- a/client/cluster/v1/zz_generated_node_spec.go +++ b/client/cluster/v1/zz_generated_node_spec.go @@ -16,5 +16,5 @@ type NodeSpec struct { PodCIDR string `json:"podCIDR,omitempty"` ProviderID string `json:"providerID,omitempty"` Taints []Taint `json:"taints,omitempty"` - Unschedulable bool `json:"unschedulable,omitempty"` + Unschedulable *bool `json:"unschedulable,omitempty"` } diff --git a/client/cluster/v1/zz_generated_node_status.go b/client/cluster/v1/zz_generated_node_status.go index 912b4885..e4943791 100644 --- a/client/cluster/v1/zz_generated_node_status.go +++ b/client/cluster/v1/zz_generated_node_status.go @@ -15,14 +15,14 @@ const ( ) type NodeStatus struct { - Addresses []NodeAddress `json:"addresses,omitempty"` - Allocatable map[string]string `json:"allocatable,omitempty"` - Capacity map[string]string `json:"capacity,omitempty"` - Conditions []NodeCondition `json:"conditions,omitempty"` - DaemonEndpoints NodeDaemonEndpoints `json:"daemonEndpoints,omitempty"` - Images []ContainerImage `json:"images,omitempty"` - NodeInfo NodeSystemInfo `json:"nodeInfo,omitempty"` - Phase string `json:"phase,omitempty"` - VolumesAttached []AttachedVolume `json:"volumesAttached,omitempty"` - VolumesInUse []string `json:"volumesInUse,omitempty"` + Addresses []NodeAddress `json:"addresses,omitempty"` + Allocatable map[string]string `json:"allocatable,omitempty"` + Capacity map[string]string `json:"capacity,omitempty"` + Conditions []NodeCondition `json:"conditions,omitempty"` + DaemonEndpoints *NodeDaemonEndpoints `json:"daemonEndpoints,omitempty"` + Images []ContainerImage `json:"images,omitempty"` + NodeInfo *NodeSystemInfo `json:"nodeInfo,omitempty"` + Phase string `json:"phase,omitempty"` + VolumesAttached []AttachedVolume `json:"volumesAttached,omitempty"` + VolumesInUse []string `json:"volumesInUse,omitempty"` } diff --git a/client/cluster/v1/zz_generated_object_meta.go b/client/cluster/v1/zz_generated_object_meta.go index a36fe81c..86acd6ff 100644 --- a/client/cluster/v1/zz_generated_object_meta.go +++ b/client/cluster/v1/zz_generated_object_meta.go @@ -1,22 +1,26 @@ package client const ( - ObjectMetaType = "objectMeta" - ObjectMetaFieldAnnotations = "annotations" - ObjectMetaFieldCreationTimestamp = "creationTimestamp" - ObjectMetaFieldDeletionTimestamp = "deletionTimestamp" - ObjectMetaFieldLabels = "labels" - ObjectMetaFieldName = "name" - ObjectMetaFieldNamespace = "namespace" - ObjectMetaFieldUID = "uid" + ObjectMetaType = "objectMeta" + ObjectMetaFieldAnnotations = "annotations" + ObjectMetaFieldCreated = "created" + ObjectMetaFieldLabels = "labels" + ObjectMetaFieldName = "name" + ObjectMetaFieldNamespace = "namespace" + ObjectMetaFieldOwnerReferences = "ownerReferences" + ObjectMetaFieldRemoved = "removed" + ObjectMetaFieldResourcePath = "resourcePath" + ObjectMetaFieldUuid = "uuid" ) type ObjectMeta struct { - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - UID string `json:"uid,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Uuid string `json:"uuid,omitempty"` } diff --git a/client/cluster/v1/zz_generated_rancher_kubernetes_engine_config.go b/client/cluster/v1/zz_generated_rancher_kubernetes_engine_config.go index 74eab2a5..ca8d22ad 100644 --- a/client/cluster/v1/zz_generated_rancher_kubernetes_engine_config.go +++ b/client/cluster/v1/zz_generated_rancher_kubernetes_engine_config.go @@ -3,7 +3,7 @@ package client const ( RancherKubernetesEngineConfigType = "rancherKubernetesEngineConfig" RancherKubernetesEngineConfigFieldAddons = "addons" - RancherKubernetesEngineConfigFieldAuthentication = "authentication" + RancherKubernetesEngineConfigFieldAuthentication = "auth" RancherKubernetesEngineConfigFieldHosts = "hosts" RancherKubernetesEngineConfigFieldNetwork = "network" RancherKubernetesEngineConfigFieldSSHKeyPath = "sshKeyPath" @@ -11,10 +11,10 @@ const ( ) type RancherKubernetesEngineConfig struct { - Addons string `json:"addons,omitempty"` - Authentication AuthConfig `json:"authentication,omitempty"` - Hosts []RKEConfigHost `json:"hosts,omitempty"` - Network NetworkConfig `json:"network,omitempty"` - SSHKeyPath string `json:"sshKeyPath,omitempty"` - Services RKEConfigServices `json:"services,omitempty"` + Addons string `json:"addons,omitempty"` + Authentication *AuthConfig `json:"auth,omitempty"` + Hosts []RKEConfigHost `json:"hosts,omitempty"` + Network *NetworkConfig `json:"network,omitempty"` + SSHKeyPath string `json:"sshKeyPath,omitempty"` + Services *RKEConfigServices `json:"services,omitempty"` } diff --git a/client/cluster/v1/zz_generated_rke_config_services.go b/client/cluster/v1/zz_generated_rke_config_services.go index 1120ae9e..522010a5 100644 --- a/client/cluster/v1/zz_generated_rke_config_services.go +++ b/client/cluster/v1/zz_generated_rke_config_services.go @@ -3,7 +3,7 @@ package client const ( RKEConfigServicesType = "rkeConfigServices" RKEConfigServicesFieldEtcd = "etcd" - RKEConfigServicesFieldKubeAPI = "kubeAPI" + RKEConfigServicesFieldKubeAPI = "kubeApi" RKEConfigServicesFieldKubeController = "kubeController" RKEConfigServicesFieldKubelet = "kubelet" RKEConfigServicesFieldKubeproxy = "kubeproxy" @@ -11,10 +11,10 @@ const ( ) type RKEConfigServices struct { - Etcd ETCDService `json:"etcd,omitempty"` - KubeAPI KubeAPIService `json:"kubeAPI,omitempty"` - KubeController KubeControllerService `json:"kubeController,omitempty"` - Kubelet KubeletService `json:"kubelet,omitempty"` - Kubeproxy KubeproxyService `json:"kubeproxy,omitempty"` - Scheduler SchedulerService `json:"scheduler,omitempty"` + Etcd *ETCDService `json:"etcd,omitempty"` + KubeAPI *KubeAPIService `json:"kubeApi,omitempty"` + KubeController *KubeControllerService `json:"kubeController,omitempty"` + Kubelet *KubeletService `json:"kubelet,omitempty"` + Kubeproxy *KubeproxyService `json:"kubeproxy,omitempty"` + Scheduler *SchedulerService `json:"scheduler,omitempty"` } diff --git a/client/cluster/v1/zz_generated_status.go b/client/cluster/v1/zz_generated_status.go index e1861b57..bd06240a 100644 --- a/client/cluster/v1/zz_generated_status.go +++ b/client/cluster/v1/zz_generated_status.go @@ -6,7 +6,7 @@ const ( StatusFieldCode = "code" StatusFieldDetails = "details" StatusFieldKind = "kind" - StatusFieldListMeta = "listMeta" + StatusFieldListMeta = "metadata" StatusFieldMessage = "message" StatusFieldReason = "reason" StatusFieldStatus = "status" @@ -14,10 +14,10 @@ const ( type Status struct { APIVersion string `json:"apiVersion,omitempty"` - Code int64 `json:"code,omitempty"` + Code *int64 `json:"code,omitempty"` Details *StatusDetails `json:"details,omitempty"` Kind string `json:"kind,omitempty"` - ListMeta ListMeta `json:"listMeta,omitempty"` + ListMeta *ListMeta `json:"metadata,omitempty"` Message string `json:"message,omitempty"` Reason string `json:"reason,omitempty"` Status string `json:"status,omitempty"` diff --git a/client/cluster/v1/zz_generated_status_cause.go b/client/cluster/v1/zz_generated_status_cause.go index c0818a1a..e2dcd46f 100644 --- a/client/cluster/v1/zz_generated_status_cause.go +++ b/client/cluster/v1/zz_generated_status_cause.go @@ -4,11 +4,11 @@ const ( StatusCauseType = "statusCause" StatusCauseFieldField = "field" StatusCauseFieldMessage = "message" - StatusCauseFieldType = "type" + StatusCauseFieldType = "reason" ) type StatusCause struct { Field string `json:"field,omitempty"` Message string `json:"message,omitempty"` - Type string `json:"type,omitempty"` + Type string `json:"reason,omitempty"` } diff --git a/client/cluster/v1/zz_generated_status_details.go b/client/cluster/v1/zz_generated_status_details.go index 78cdf859..8c68523c 100644 --- a/client/cluster/v1/zz_generated_status_details.go +++ b/client/cluster/v1/zz_generated_status_details.go @@ -15,6 +15,6 @@ type StatusDetails struct { Group string `json:"group,omitempty"` Kind string `json:"kind,omitempty"` Name string `json:"name,omitempty"` - RetryAfterSeconds int64 `json:"retryAfterSeconds,omitempty"` + RetryAfterSeconds *int64 `json:"retryAfterSeconds,omitempty"` UID string `json:"uid,omitempty"` } diff --git a/client/workload/v1/zz_generated_aws_elastic_block_store_volume_source.go b/client/workload/v1/zz_generated_aws_elastic_block_store_volume_source.go index e6bc20e6..9a8158f6 100644 --- a/client/workload/v1/zz_generated_aws_elastic_block_store_volume_source.go +++ b/client/workload/v1/zz_generated_aws_elastic_block_store_volume_source.go @@ -10,7 +10,7 @@ const ( type AWSElasticBlockStoreVolumeSource struct { FSType string `json:"fsType,omitempty"` - Partition int64 `json:"partition,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + Partition *int64 `json:"partition,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` VolumeID string `json:"volumeID,omitempty"` } diff --git a/client/workload/v1/zz_generated_azure_disk_volume_source.go b/client/workload/v1/zz_generated_azure_disk_volume_source.go index 32a81402..f729fbc2 100644 --- a/client/workload/v1/zz_generated_azure_disk_volume_source.go +++ b/client/workload/v1/zz_generated_azure_disk_volume_source.go @@ -3,7 +3,7 @@ package client const ( AzureDiskVolumeSourceType = "azureDiskVolumeSource" AzureDiskVolumeSourceFieldCachingMode = "cachingMode" - AzureDiskVolumeSourceFieldDataDiskURI = "dataDiskURI" + AzureDiskVolumeSourceFieldDataDiskURI = "diskURI" AzureDiskVolumeSourceFieldDiskName = "diskName" AzureDiskVolumeSourceFieldFSType = "fsType" AzureDiskVolumeSourceFieldKind = "kind" @@ -12,7 +12,7 @@ const ( type AzureDiskVolumeSource struct { CachingMode string `json:"cachingMode,omitempty"` - DataDiskURI string `json:"dataDiskURI,omitempty"` + DataDiskURI string `json:"diskURI,omitempty"` DiskName string `json:"diskName,omitempty"` FSType string `json:"fsType,omitempty"` Kind string `json:"kind,omitempty"` diff --git a/client/workload/v1/zz_generated_azure_file_volume_source.go b/client/workload/v1/zz_generated_azure_file_volume_source.go index c70e3999..107e6c9b 100644 --- a/client/workload/v1/zz_generated_azure_file_volume_source.go +++ b/client/workload/v1/zz_generated_azure_file_volume_source.go @@ -8,7 +8,7 @@ const ( ) type AzureFileVolumeSource struct { - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretName string `json:"secretName,omitempty"` ShareName string `json:"shareName,omitempty"` } diff --git a/client/workload/v1/zz_generated_capabilities.go b/client/workload/v1/zz_generated_capabilities.go index 306ea52b..93dcf308 100644 --- a/client/workload/v1/zz_generated_capabilities.go +++ b/client/workload/v1/zz_generated_capabilities.go @@ -1,12 +1,12 @@ package client const ( - CapabilitiesType = "capabilities" - CapabilitiesFieldAdd = "add" - CapabilitiesFieldDrop = "drop" + CapabilitiesType = "capabilities" + CapabilitiesFieldCapAdd = "capAdd" + CapabilitiesFieldCapDrop = "capDrop" ) type Capabilities struct { - Add []string `json:"add,omitempty"` - Drop []string `json:"drop,omitempty"` + CapAdd []string `json:"capAdd,omitempty"` + CapDrop []string `json:"capDrop,omitempty"` } diff --git a/client/workload/v1/zz_generated_ceph_fsvolume_source.go b/client/workload/v1/zz_generated_ceph_fsvolume_source.go index 1f36db3f..e985d586 100644 --- a/client/workload/v1/zz_generated_ceph_fsvolume_source.go +++ b/client/workload/v1/zz_generated_ceph_fsvolume_source.go @@ -13,7 +13,7 @@ const ( type CephFSVolumeSource struct { Monitors []string `json:"monitors,omitempty"` Path string `json:"path,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretFile string `json:"secretFile,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` User string `json:"user,omitempty"` diff --git a/client/workload/v1/zz_generated_cinder_volume_source.go b/client/workload/v1/zz_generated_cinder_volume_source.go index f53e5f77..8073d973 100644 --- a/client/workload/v1/zz_generated_cinder_volume_source.go +++ b/client/workload/v1/zz_generated_cinder_volume_source.go @@ -9,6 +9,6 @@ const ( type CinderVolumeSource struct { FSType string `json:"fsType,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` VolumeID string `json:"volumeID,omitempty"` } diff --git a/client/workload/v1/zz_generated_client.go b/client/workload/v1/zz_generated_client.go index af910d81..6a14e2ea 100644 --- a/client/workload/v1/zz_generated_client.go +++ b/client/workload/v1/zz_generated_client.go @@ -10,10 +10,13 @@ type Client struct { Pod PodOperations Namespace NamespaceOperations Node NodeOperations - ReplicaSet ReplicaSetOperations Deployment DeploymentOperations PersistentVolumeClaim PersistentVolumeClaimOperations StatefulSet StatefulSetOperations + ReplicaSet ReplicaSetOperations + ReplicationController ReplicationControllerOperations + DaemonSet DaemonSetOperations + Workload WorkloadOperations } func NewClient(opts *clientbase.ClientOpts) (*Client, error) { @@ -29,10 +32,13 @@ func NewClient(opts *clientbase.ClientOpts) (*Client, error) { client.Pod = newPodClient(client) client.Namespace = newNamespaceClient(client) client.Node = newNodeClient(client) - client.ReplicaSet = newReplicaSetClient(client) client.Deployment = newDeploymentClient(client) client.PersistentVolumeClaim = newPersistentVolumeClaimClient(client) client.StatefulSet = newStatefulSetClient(client) + client.ReplicaSet = newReplicaSetClient(client) + client.ReplicationController = newReplicationControllerClient(client) + client.DaemonSet = newDaemonSetClient(client) + client.Workload = newWorkloadClient(client) return client, nil } diff --git a/client/workload/v1/zz_generated_container.go b/client/workload/v1/zz_generated_container.go index 35880db6..428dc067 100644 --- a/client/workload/v1/zz_generated_container.go +++ b/client/workload/v1/zz_generated_container.go @@ -2,65 +2,65 @@ package client const ( ContainerType = "container" - ContainerFieldAdd = "add" ContainerFieldAllowPrivilegeEscalation = "allowPrivilegeEscalation" - ContainerFieldArgs = "args" + ContainerFieldCapAdd = "capAdd" + ContainerFieldCapDrop = "capDrop" ContainerFieldCommand = "command" - ContainerFieldDrop = "drop" + ContainerFieldEntrypoint = "entrypoint" ContainerFieldEnvironment = "environment" ContainerFieldEnvironmentFrom = "environmentFrom" + ContainerFieldHealthcheck = "healthcheck" ContainerFieldImage = "image" - ContainerFieldImagePullPolicy = "imagePullPolicy" ContainerFieldInitContainer = "initContainer" - ContainerFieldLivenessProbe = "livenessProbe" ContainerFieldName = "name" ContainerFieldPorts = "ports" ContainerFieldPostStart = "postStart" ContainerFieldPreStop = "preStop" ContainerFieldPrivileged = "privileged" - ContainerFieldReadOnlyRootFilesystem = "readOnlyRootFilesystem" - ContainerFieldReadinessProbe = "readinessProbe" + ContainerFieldPullPolicy = "pullPolicy" + ContainerFieldReadOnly = "readOnly" + ContainerFieldReadycheck = "readycheck" ContainerFieldResources = "resources" ContainerFieldRunAsNonRoot = "runAsNonRoot" - ContainerFieldRunAsUser = "runAsUser" ContainerFieldScheduling = "scheduling" ContainerFieldStdin = "stdin" ContainerFieldStdinOnce = "stdinOnce" ContainerFieldTTY = "tty" ContainerFieldTerminationMessagePath = "terminationMessagePath" ContainerFieldTerminationMessagePolicy = "terminationMessagePolicy" + ContainerFieldUid = "uid" ContainerFieldVolumeMounts = "volumeMounts" ContainerFieldWorkingDir = "workingDir" ) type Container struct { - Add []string `json:"add,omitempty"` AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` - Args []string `json:"args,omitempty"` + CapAdd []string `json:"capAdd,omitempty"` + CapDrop []string `json:"capDrop,omitempty"` Command []string `json:"command,omitempty"` - Drop []string `json:"drop,omitempty"` + Entrypoint []string `json:"entrypoint,omitempty"` Environment map[string]string `json:"environment,omitempty"` EnvironmentFrom []EnvironmentFrom `json:"environmentFrom,omitempty"` + Healthcheck *Probe `json:"healthcheck,omitempty"` Image string `json:"image,omitempty"` - ImagePullPolicy string `json:"imagePullPolicy,omitempty"` - InitContainer bool `json:"initContainer,omitempty"` - LivenessProbe *Probe `json:"livenessProbe,omitempty"` + InitContainer *bool `json:"initContainer,omitempty"` Name string `json:"name,omitempty"` Ports []ContainerPort `json:"ports,omitempty"` PostStart *Handler `json:"postStart,omitempty"` PreStop *Handler `json:"preStop,omitempty"` Privileged *bool `json:"privileged,omitempty"` - ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` - ReadinessProbe *Probe `json:"readinessProbe,omitempty"` + PullPolicy string `json:"pullPolicy,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + Readycheck *Probe `json:"readycheck,omitempty"` Resources *Resources `json:"resources,omitempty"` RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `json:"runAsUser,omitempty"` Scheduling *Scheduling `json:"scheduling,omitempty"` - Stdin bool `json:"stdin,omitempty"` - StdinOnce bool `json:"stdinOnce,omitempty"` - TTY bool `json:"tty,omitempty"` + Stdin *bool `json:"stdin,omitempty"` + StdinOnce *bool `json:"stdinOnce,omitempty"` + TTY *bool `json:"tty,omitempty"` TerminationMessagePath string `json:"terminationMessagePath,omitempty"` TerminationMessagePolicy string `json:"terminationMessagePolicy,omitempty"` + Uid *int64 `json:"uid,omitempty"` VolumeMounts []VolumeMount `json:"volumeMounts,omitempty"` WorkingDir string `json:"workingDir,omitempty"` } diff --git a/client/workload/v1/zz_generated_container_image.go b/client/workload/v1/zz_generated_container_image.go index ecc38df4..343e5325 100644 --- a/client/workload/v1/zz_generated_container_image.go +++ b/client/workload/v1/zz_generated_container_image.go @@ -8,5 +8,5 @@ const ( type ContainerImage struct { Names []string `json:"names,omitempty"` - SizeBytes int64 `json:"sizeBytes,omitempty"` + SizeBytes *int64 `json:"sizeBytes,omitempty"` } diff --git a/client/workload/v1/zz_generated_container_port.go b/client/workload/v1/zz_generated_container_port.go index e371969f..06e54699 100644 --- a/client/workload/v1/zz_generated_container_port.go +++ b/client/workload/v1/zz_generated_container_port.go @@ -9,8 +9,8 @@ const ( ) type ContainerPort struct { - ContainerPort int64 `json:"containerPort,omitempty"` + ContainerPort *int64 `json:"containerPort,omitempty"` HostIP string `json:"hostIP,omitempty"` - HostPort int64 `json:"hostPort,omitempty"` + HostPort *int64 `json:"hostPort,omitempty"` Protocol string `json:"protocol,omitempty"` } diff --git a/client/workload/v1/zz_generated_container_state_terminated.go b/client/workload/v1/zz_generated_container_state_terminated.go index 391186ad..f74d0aa6 100644 --- a/client/workload/v1/zz_generated_container_state_terminated.go +++ b/client/workload/v1/zz_generated_container_state_terminated.go @@ -13,10 +13,10 @@ const ( type ContainerStateTerminated struct { ContainerID string `json:"containerID,omitempty"` - ExitCode int64 `json:"exitCode,omitempty"` + ExitCode *int64 `json:"exitCode,omitempty"` FinishedAt string `json:"finishedAt,omitempty"` Message string `json:"message,omitempty"` Reason string `json:"reason,omitempty"` - Signal int64 `json:"signal,omitempty"` + Signal *int64 `json:"signal,omitempty"` StartedAt string `json:"startedAt,omitempty"` } diff --git a/client/workload/v1/zz_generated_container_status.go b/client/workload/v1/zz_generated_container_status.go index eed832a8..51e705b3 100644 --- a/client/workload/v1/zz_generated_container_status.go +++ b/client/workload/v1/zz_generated_container_status.go @@ -5,7 +5,7 @@ const ( ContainerStatusFieldContainerID = "containerID" ContainerStatusFieldImage = "image" ContainerStatusFieldImageID = "imageID" - ContainerStatusFieldLastTerminationState = "lastTerminationState" + ContainerStatusFieldLastTerminationState = "lastState" ContainerStatusFieldName = "name" ContainerStatusFieldReady = "ready" ContainerStatusFieldRestartCount = "restartCount" @@ -13,12 +13,12 @@ const ( ) type ContainerStatus struct { - ContainerID string `json:"containerID,omitempty"` - Image string `json:"image,omitempty"` - ImageID string `json:"imageID,omitempty"` - LastTerminationState ContainerState `json:"lastTerminationState,omitempty"` - Name string `json:"name,omitempty"` - Ready bool `json:"ready,omitempty"` - RestartCount int64 `json:"restartCount,omitempty"` - State ContainerState `json:"state,omitempty"` + ContainerID string `json:"containerID,omitempty"` + Image string `json:"image,omitempty"` + ImageID string `json:"imageID,omitempty"` + LastTerminationState *ContainerState `json:"lastState,omitempty"` + Name string `json:"name,omitempty"` + Ready *bool `json:"ready,omitempty"` + RestartCount *int64 `json:"restartCount,omitempty"` + State *ContainerState `json:"state,omitempty"` } diff --git a/client/workload/v1/zz_generated_cpu_info.go b/client/workload/v1/zz_generated_cpu_info.go index 2631463b..7b83b19c 100644 --- a/client/workload/v1/zz_generated_cpu_info.go +++ b/client/workload/v1/zz_generated_cpu_info.go @@ -6,5 +6,5 @@ const ( ) type CPUInfo struct { - Count int64 `json:"count,omitempty"` + Count *int64 `json:"count,omitempty"` } diff --git a/client/workload/v1/zz_generated_daemon_endpoint.go b/client/workload/v1/zz_generated_daemon_endpoint.go index af5e3552..d68fae2a 100644 --- a/client/workload/v1/zz_generated_daemon_endpoint.go +++ b/client/workload/v1/zz_generated_daemon_endpoint.go @@ -2,9 +2,9 @@ package client const ( DaemonEndpointType = "daemonEndpoint" - DaemonEndpointFieldPort = "port" + DaemonEndpointFieldPort = "Port" ) type DaemonEndpoint struct { - Port int64 `json:"port,omitempty"` + Port *int64 `json:"Port,omitempty"` } diff --git a/client/workload/v1/zz_generated_daemon_set.go b/client/workload/v1/zz_generated_daemon_set.go new file mode 100644 index 00000000..058d2289 --- /dev/null +++ b/client/workload/v1/zz_generated_daemon_set.go @@ -0,0 +1,159 @@ +package client + +import ( + "github.com/rancher/norman/types" +) + +const ( + DaemonSetType = "daemonSet" + DaemonSetFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + DaemonSetFieldAnnotations = "annotations" + DaemonSetFieldAutomountServiceAccountToken = "automountServiceAccountToken" + DaemonSetFieldBatchSize = "batchSize" + DaemonSetFieldContainers = "containers" + DaemonSetFieldCreated = "created" + DaemonSetFieldDNSPolicy = "dnsPolicy" + DaemonSetFieldDeploymentStrategy = "deploymentStrategy" + DaemonSetFieldFsgid = "fsgid" + DaemonSetFieldGids = "gids" + DaemonSetFieldHostAliases = "hostAliases" + DaemonSetFieldHostname = "hostname" + DaemonSetFieldIPC = "ipc" + DaemonSetFieldLabels = "labels" + DaemonSetFieldName = "name" + DaemonSetFieldNamespace = "namespace" + DaemonSetFieldNet = "net" + DaemonSetFieldNodeId = "nodeId" + DaemonSetFieldOwnerReferences = "ownerReferences" + DaemonSetFieldPID = "pid" + DaemonSetFieldPriority = "priority" + DaemonSetFieldPriorityClassName = "priorityClassName" + DaemonSetFieldProjectID = "projectId" + DaemonSetFieldPullSecrets = "pullSecrets" + DaemonSetFieldRemoved = "removed" + DaemonSetFieldResourcePath = "resourcePath" + DaemonSetFieldRestart = "restart" + DaemonSetFieldRevisionHistoryLimit = "revisionHistoryLimit" + DaemonSetFieldRunAsNonRoot = "runAsNonRoot" + DaemonSetFieldScale = "scale" + DaemonSetFieldSchedulerName = "schedulerName" + DaemonSetFieldServiceAccountName = "serviceAccountName" + DaemonSetFieldStatus = "status" + DaemonSetFieldSubdomain = "subdomain" + DaemonSetFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + DaemonSetFieldTolerations = "tolerations" + DaemonSetFieldUid = "uid" + DaemonSetFieldUpdateStrategy = "updateStrategy" + DaemonSetFieldUuid = "uuid" + DaemonSetFieldVolumes = "volumes" + DaemonSetFieldWorkloadAnnotations = "workloadAnnotations" + DaemonSetFieldWorkloadLabels = "workloadLabels" +) + +type DaemonSet struct { + types.Resource + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Status *DaemonSetStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + UpdateStrategy *DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` +} +type DaemonSetCollection struct { + types.Collection + Data []DaemonSet `json:"data,omitempty"` + client *DaemonSetClient +} + +type DaemonSetClient struct { + apiClient *Client +} + +type DaemonSetOperations interface { + List(opts *types.ListOpts) (*DaemonSetCollection, error) + Create(opts *DaemonSet) (*DaemonSet, error) + Update(existing *DaemonSet, updates interface{}) (*DaemonSet, error) + ByID(id string) (*DaemonSet, error) + Delete(container *DaemonSet) error +} + +func newDaemonSetClient(apiClient *Client) *DaemonSetClient { + return &DaemonSetClient{ + apiClient: apiClient, + } +} + +func (c *DaemonSetClient) Create(container *DaemonSet) (*DaemonSet, error) { + resp := &DaemonSet{} + err := c.apiClient.Ops.DoCreate(DaemonSetType, container, resp) + return resp, err +} + +func (c *DaemonSetClient) Update(existing *DaemonSet, updates interface{}) (*DaemonSet, error) { + resp := &DaemonSet{} + err := c.apiClient.Ops.DoUpdate(DaemonSetType, &existing.Resource, updates, resp) + return resp, err +} + +func (c *DaemonSetClient) List(opts *types.ListOpts) (*DaemonSetCollection, error) { + resp := &DaemonSetCollection{} + err := c.apiClient.Ops.DoList(DaemonSetType, opts, resp) + resp.client = c + return resp, err +} + +func (cc *DaemonSetCollection) Next() (*DaemonSetCollection, error) { + if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" { + resp := &DaemonSetCollection{} + err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp) + resp.client = cc.client + return resp, err + } + return nil, nil +} + +func (c *DaemonSetClient) ByID(id string) (*DaemonSet, error) { + resp := &DaemonSet{} + err := c.apiClient.Ops.DoByID(DaemonSetType, id, resp) + return resp, err +} + +func (c *DaemonSetClient) Delete(container *DaemonSet) error { + return c.apiClient.Ops.DoResourceDelete(DaemonSetType, &container.Resource) +} diff --git a/client/workload/v1/zz_generated_daemon_set_spec.go b/client/workload/v1/zz_generated_daemon_set_spec.go new file mode 100644 index 00000000..561820e8 --- /dev/null +++ b/client/workload/v1/zz_generated_daemon_set_spec.go @@ -0,0 +1,68 @@ +package client + +const ( + DaemonSetSpecType = "daemonSetSpec" + DaemonSetSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + DaemonSetSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + DaemonSetSpecFieldBatchSize = "batchSize" + DaemonSetSpecFieldContainers = "containers" + DaemonSetSpecFieldDNSPolicy = "dnsPolicy" + DaemonSetSpecFieldDeploymentStrategy = "deploymentStrategy" + DaemonSetSpecFieldFsgid = "fsgid" + DaemonSetSpecFieldGids = "gids" + DaemonSetSpecFieldHostAliases = "hostAliases" + DaemonSetSpecFieldHostname = "hostname" + DaemonSetSpecFieldIPC = "ipc" + DaemonSetSpecFieldNet = "net" + DaemonSetSpecFieldNodeId = "nodeId" + DaemonSetSpecFieldObjectMeta = "metadata" + DaemonSetSpecFieldPID = "pid" + DaemonSetSpecFieldPriority = "priority" + DaemonSetSpecFieldPriorityClassName = "priorityClassName" + DaemonSetSpecFieldPullSecrets = "pullSecrets" + DaemonSetSpecFieldRestart = "restart" + DaemonSetSpecFieldRevisionHistoryLimit = "revisionHistoryLimit" + DaemonSetSpecFieldRunAsNonRoot = "runAsNonRoot" + DaemonSetSpecFieldScale = "scale" + DaemonSetSpecFieldSchedulerName = "schedulerName" + DaemonSetSpecFieldServiceAccountName = "serviceAccountName" + DaemonSetSpecFieldSubdomain = "subdomain" + DaemonSetSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + DaemonSetSpecFieldTolerations = "tolerations" + DaemonSetSpecFieldUid = "uid" + DaemonSetSpecFieldUpdateStrategy = "updateStrategy" + DaemonSetSpecFieldVolumes = "volumes" +) + +type DaemonSetSpec struct { + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + UpdateStrategy *DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` +} diff --git a/client/workload/v1/zz_generated_daemon_set_status.go b/client/workload/v1/zz_generated_daemon_set_status.go new file mode 100644 index 00000000..99d197f6 --- /dev/null +++ b/client/workload/v1/zz_generated_daemon_set_status.go @@ -0,0 +1,26 @@ +package client + +const ( + DaemonSetStatusType = "daemonSetStatus" + DaemonSetStatusFieldCollisionCount = "collisionCount" + DaemonSetStatusFieldCurrentNumberScheduled = "currentNumberScheduled" + DaemonSetStatusFieldDesiredNumberScheduled = "desiredNumberScheduled" + DaemonSetStatusFieldNumberAvailable = "numberAvailable" + DaemonSetStatusFieldNumberMisscheduled = "numberMisscheduled" + DaemonSetStatusFieldNumberReady = "numberReady" + DaemonSetStatusFieldNumberUnavailable = "numberUnavailable" + DaemonSetStatusFieldObservedGeneration = "observedGeneration" + DaemonSetStatusFieldUpdatedNumberScheduled = "updatedNumberScheduled" +) + +type DaemonSetStatus struct { + CollisionCount *int64 `json:"collisionCount,omitempty"` + CurrentNumberScheduled *int64 `json:"currentNumberScheduled,omitempty"` + DesiredNumberScheduled *int64 `json:"desiredNumberScheduled,omitempty"` + NumberAvailable *int64 `json:"numberAvailable,omitempty"` + NumberMisscheduled *int64 `json:"numberMisscheduled,omitempty"` + NumberReady *int64 `json:"numberReady,omitempty"` + NumberUnavailable *int64 `json:"numberUnavailable,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + UpdatedNumberScheduled *int64 `json:"updatedNumberScheduled,omitempty"` +} diff --git a/client/workload/v1/zz_generated_daemon_set_update_strategy.go b/client/workload/v1/zz_generated_daemon_set_update_strategy.go new file mode 100644 index 00000000..a4cdfe2c --- /dev/null +++ b/client/workload/v1/zz_generated_daemon_set_update_strategy.go @@ -0,0 +1,12 @@ +package client + +const ( + DaemonSetUpdateStrategyType = "daemonSetUpdateStrategy" + DaemonSetUpdateStrategyFieldRollingUpdate = "rollingUpdate" + DaemonSetUpdateStrategyFieldType = "type" +) + +type DaemonSetUpdateStrategy struct { + RollingUpdate *RollingUpdateDaemonSet `json:"rollingUpdate,omitempty"` + Type string `json:"type,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deploy_config.go b/client/workload/v1/zz_generated_deploy_config.go new file mode 100644 index 00000000..8e899939 --- /dev/null +++ b/client/workload/v1/zz_generated_deploy_config.go @@ -0,0 +1,14 @@ +package client + +const ( + DeployConfigType = "deployConfig" + DeployConfigFieldBatchSize = "batchSize" + DeployConfigFieldDeploymentStrategy = "deploymentStrategy" + DeployConfigFieldScale = "scale" +) + +type DeployConfig struct { + BatchSize string `json:"batchSize,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Scale *int64 `json:"scale,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deploy_params.go b/client/workload/v1/zz_generated_deploy_params.go deleted file mode 100644 index 2cbb04f5..00000000 --- a/client/workload/v1/zz_generated_deploy_params.go +++ /dev/null @@ -1,18 +0,0 @@ -package client - -const ( - DeployParamsType = "deployParams" - DeployParamsFieldMinReadySeconds = "minReadySeconds" - DeployParamsFieldPodManagementPolicy = "podManagementPolicy" - DeployParamsFieldProgressDeadlineSeconds = "progressDeadlineSeconds" - DeployParamsFieldReplicas = "replicas" - DeployParamsFieldRevisionHistoryLimit = "revisionHistoryLimit" -) - -type DeployParams struct { - MinReadySeconds int64 `json:"minReadySeconds,omitempty"` - PodManagementPolicy string `json:"podManagementPolicy,omitempty"` - ProgressDeadlineSeconds *int64 `json:"progressDeadlineSeconds,omitempty"` - Replicas *int64 `json:"replicas,omitempty"` - RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` -} diff --git a/client/workload/v1/zz_generated_deploy_strategy.go b/client/workload/v1/zz_generated_deploy_strategy.go new file mode 100644 index 00000000..2d289e3b --- /dev/null +++ b/client/workload/v1/zz_generated_deploy_strategy.go @@ -0,0 +1,18 @@ +package client + +const ( + DeployStrategyType = "deployStrategy" + DeployStrategyFieldGlobalConfig = "globalConfig" + DeployStrategyFieldJobConfig = "jobConfig" + DeployStrategyFieldKind = "kind" + DeployStrategyFieldOrderedConfig = "orderedConfig" + DeployStrategyFieldParallelConfig = "parallelConfig" +) + +type DeployStrategy struct { + GlobalConfig *DeploymentGlobalConfig `json:"globalConfig,omitempty"` + JobConfig *DeploymentJobConfig `json:"jobConfig,omitempty"` + Kind string `json:"kind,omitempty"` + OrderedConfig *DeploymentOrderedConfig `json:"orderedConfig,omitempty"` + ParallelConfig *DeploymentParallelConfig `json:"parallelConfig,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deployment.go b/client/workload/v1/zz_generated_deployment.go index 5d120c67..92178abb 100644 --- a/client/workload/v1/zz_generated_deployment.go +++ b/client/workload/v1/zz_generated_deployment.go @@ -5,39 +5,95 @@ import ( ) const ( - DeploymentType = "deployment" - DeploymentFieldAPIVersion = "apiVersion" - DeploymentFieldAnnotations = "annotations" - DeploymentFieldCreationTimestamp = "creationTimestamp" - DeploymentFieldDeletionTimestamp = "deletionTimestamp" - DeploymentFieldDeploy = "deploy" - DeploymentFieldKind = "kind" - DeploymentFieldLabels = "labels" - DeploymentFieldName = "name" - DeploymentFieldNamespace = "namespace" - DeploymentFieldPaused = "paused" - DeploymentFieldStatus = "status" - DeploymentFieldStrategy = "strategy" - DeploymentFieldTemplate = "template" - DeploymentFieldUID = "uid" + DeploymentType = "deployment" + DeploymentFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + DeploymentFieldAnnotations = "annotations" + DeploymentFieldAutomountServiceAccountToken = "automountServiceAccountToken" + DeploymentFieldBatchSize = "batchSize" + DeploymentFieldContainers = "containers" + DeploymentFieldCreated = "created" + DeploymentFieldDNSPolicy = "dnsPolicy" + DeploymentFieldDeploymentStrategy = "deploymentStrategy" + DeploymentFieldFsgid = "fsgid" + DeploymentFieldGids = "gids" + DeploymentFieldHostAliases = "hostAliases" + DeploymentFieldHostname = "hostname" + DeploymentFieldIPC = "ipc" + DeploymentFieldLabels = "labels" + DeploymentFieldName = "name" + DeploymentFieldNamespace = "namespace" + DeploymentFieldNet = "net" + DeploymentFieldNodeId = "nodeId" + DeploymentFieldOwnerReferences = "ownerReferences" + DeploymentFieldPID = "pid" + DeploymentFieldPaused = "paused" + DeploymentFieldPriority = "priority" + DeploymentFieldPriorityClassName = "priorityClassName" + DeploymentFieldProjectID = "projectId" + DeploymentFieldPullSecrets = "pullSecrets" + DeploymentFieldRemoved = "removed" + DeploymentFieldResourcePath = "resourcePath" + DeploymentFieldRestart = "restart" + DeploymentFieldRevisionHistoryLimit = "revisionHistoryLimit" + DeploymentFieldRunAsNonRoot = "runAsNonRoot" + DeploymentFieldScale = "scale" + DeploymentFieldSchedulerName = "schedulerName" + DeploymentFieldServiceAccountName = "serviceAccountName" + DeploymentFieldStatus = "status" + DeploymentFieldSubdomain = "subdomain" + DeploymentFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + DeploymentFieldTolerations = "tolerations" + DeploymentFieldUid = "uid" + DeploymentFieldUuid = "uuid" + DeploymentFieldVolumes = "volumes" + DeploymentFieldWorkloadAnnotations = "workloadAnnotations" + DeploymentFieldWorkloadLabels = "workloadLabels" ) type Deployment struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Deploy *DeployParams `json:"deploy,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - Paused bool `json:"paused,omitempty"` - Status DeploymentStatus `json:"status,omitempty"` - Strategy DeploymentStrategy `json:"strategy,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` - UID string `json:"uid,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + Paused *bool `json:"paused,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Status *DeploymentStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` } type DeploymentCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_deployment_global_config.go b/client/workload/v1/zz_generated_deployment_global_config.go new file mode 100644 index 00000000..7e67eaec --- /dev/null +++ b/client/workload/v1/zz_generated_deployment_global_config.go @@ -0,0 +1,12 @@ +package client + +const ( + DeploymentGlobalConfigType = "deploymentGlobalConfig" + DeploymentGlobalConfigFieldMinReadySeconds = "minReadySeconds" + DeploymentGlobalConfigFieldOnDelete = "onDelete" +) + +type DeploymentGlobalConfig struct { + MinReadySeconds *int64 `json:"minReadySeconds,omitempty"` + OnDelete *bool `json:"onDelete,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deployment_job_config.go b/client/workload/v1/zz_generated_deployment_job_config.go new file mode 100644 index 00000000..70862ebe --- /dev/null +++ b/client/workload/v1/zz_generated_deployment_job_config.go @@ -0,0 +1,14 @@ +package client + +const ( + DeploymentJobConfigType = "deploymentJobConfig" + DeploymentJobConfigFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + DeploymentJobConfigFieldBatchLimit = "batchLimit" + DeploymentJobConfigFieldOnDelete = "onDelete" +) + +type DeploymentJobConfig struct { + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + BatchLimit *int64 `json:"batchLimit,omitempty"` + OnDelete *bool `json:"onDelete,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deployment_ordered_config.go b/client/workload/v1/zz_generated_deployment_ordered_config.go new file mode 100644 index 00000000..5649efa7 --- /dev/null +++ b/client/workload/v1/zz_generated_deployment_ordered_config.go @@ -0,0 +1,14 @@ +package client + +const ( + DeploymentOrderedConfigType = "deploymentOrderedConfig" + DeploymentOrderedConfigFieldOnDelete = "onDelete" + DeploymentOrderedConfigFieldPartition = "partition" + DeploymentOrderedConfigFieldPartitionSize = "partitionSize" +) + +type DeploymentOrderedConfig struct { + OnDelete *bool `json:"onDelete,omitempty"` + Partition *int64 `json:"partition,omitempty"` + PartitionSize *int64 `json:"partitionSize,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deployment_parallel_config.go b/client/workload/v1/zz_generated_deployment_parallel_config.go new file mode 100644 index 00000000..2150b97c --- /dev/null +++ b/client/workload/v1/zz_generated_deployment_parallel_config.go @@ -0,0 +1,14 @@ +package client + +const ( + DeploymentParallelConfigType = "deploymentParallelConfig" + DeploymentParallelConfigFieldMinReadySeconds = "minReadySeconds" + DeploymentParallelConfigFieldProgressDeadlineSeconds = "progressDeadlineSeconds" + DeploymentParallelConfigFieldStartFirst = "startFirst" +) + +type DeploymentParallelConfig struct { + MinReadySeconds *int64 `json:"minReadySeconds,omitempty"` + ProgressDeadlineSeconds *int64 `json:"progressDeadlineSeconds,omitempty"` + StartFirst *bool `json:"startFirst,omitempty"` +} diff --git a/client/workload/v1/zz_generated_deployment_spec.go b/client/workload/v1/zz_generated_deployment_spec.go index 17993875..2afd909e 100644 --- a/client/workload/v1/zz_generated_deployment_spec.go +++ b/client/workload/v1/zz_generated_deployment_spec.go @@ -1,16 +1,68 @@ package client const ( - DeploymentSpecType = "deploymentSpec" - DeploymentSpecFieldDeploy = "deploy" - DeploymentSpecFieldPaused = "paused" - DeploymentSpecFieldStrategy = "strategy" - DeploymentSpecFieldTemplate = "template" + DeploymentSpecType = "deploymentSpec" + DeploymentSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + DeploymentSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + DeploymentSpecFieldBatchSize = "batchSize" + DeploymentSpecFieldContainers = "containers" + DeploymentSpecFieldDNSPolicy = "dnsPolicy" + DeploymentSpecFieldDeploymentStrategy = "deploymentStrategy" + DeploymentSpecFieldFsgid = "fsgid" + DeploymentSpecFieldGids = "gids" + DeploymentSpecFieldHostAliases = "hostAliases" + DeploymentSpecFieldHostname = "hostname" + DeploymentSpecFieldIPC = "ipc" + DeploymentSpecFieldNet = "net" + DeploymentSpecFieldNodeId = "nodeId" + DeploymentSpecFieldObjectMeta = "metadata" + DeploymentSpecFieldPID = "pid" + DeploymentSpecFieldPaused = "paused" + DeploymentSpecFieldPriority = "priority" + DeploymentSpecFieldPriorityClassName = "priorityClassName" + DeploymentSpecFieldPullSecrets = "pullSecrets" + DeploymentSpecFieldRestart = "restart" + DeploymentSpecFieldRevisionHistoryLimit = "revisionHistoryLimit" + DeploymentSpecFieldRunAsNonRoot = "runAsNonRoot" + DeploymentSpecFieldScale = "scale" + DeploymentSpecFieldSchedulerName = "schedulerName" + DeploymentSpecFieldServiceAccountName = "serviceAccountName" + DeploymentSpecFieldSubdomain = "subdomain" + DeploymentSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + DeploymentSpecFieldTolerations = "tolerations" + DeploymentSpecFieldUid = "uid" + DeploymentSpecFieldVolumes = "volumes" ) type DeploymentSpec struct { - Deploy *DeployParams `json:"deploy,omitempty"` - Paused bool `json:"paused,omitempty"` - Strategy DeploymentStrategy `json:"strategy,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Paused *bool `json:"paused,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` } diff --git a/client/workload/v1/zz_generated_deployment_status.go b/client/workload/v1/zz_generated_deployment_status.go index 56a53970..42f1dad6 100644 --- a/client/workload/v1/zz_generated_deployment_status.go +++ b/client/workload/v1/zz_generated_deployment_status.go @@ -13,12 +13,12 @@ const ( ) type DeploymentStatus struct { - AvailableReplicas int64 `json:"availableReplicas,omitempty"` + AvailableReplicas *int64 `json:"availableReplicas,omitempty"` CollisionCount *int64 `json:"collisionCount,omitempty"` Conditions []DeploymentCondition `json:"conditions,omitempty"` - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - ReadyReplicas int64 `json:"readyReplicas,omitempty"` - Replicas int64 `json:"replicas,omitempty"` - UnavailableReplicas int64 `json:"unavailableReplicas,omitempty"` - UpdatedReplicas int64 `json:"updatedReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ReadyReplicas *int64 `json:"readyReplicas,omitempty"` + Replicas *int64 `json:"replicas,omitempty"` + UnavailableReplicas *int64 `json:"unavailableReplicas,omitempty"` + UpdatedReplicas *int64 `json:"updatedReplicas,omitempty"` } diff --git a/client/workload/v1/zz_generated_environment_from.go b/client/workload/v1/zz_generated_environment_from.go index e95a427e..930fc70b 100644 --- a/client/workload/v1/zz_generated_environment_from.go +++ b/client/workload/v1/zz_generated_environment_from.go @@ -11,7 +11,7 @@ const ( ) type EnvironmentFrom struct { - Optional bool `json:"optional,omitempty"` + Optional *bool `json:"optional,omitempty"` Prefix string `json:"prefix,omitempty"` Source string `json:"source,omitempty"` SourceKey string `json:"sourceKey,omitempty"` diff --git a/client/workload/v1/zz_generated_fc_volume_source.go b/client/workload/v1/zz_generated_fc_volume_source.go index 1940da36..850a1e80 100644 --- a/client/workload/v1/zz_generated_fc_volume_source.go +++ b/client/workload/v1/zz_generated_fc_volume_source.go @@ -6,13 +6,13 @@ const ( FCVolumeSourceFieldLun = "lun" FCVolumeSourceFieldReadOnly = "readOnly" FCVolumeSourceFieldTargetWWNs = "targetWWNs" - FCVolumeSourceFieldWWIDs = "wwiDs" + FCVolumeSourceFieldWWIDs = "wwids" ) type FCVolumeSource struct { FSType string `json:"fsType,omitempty"` Lun *int64 `json:"lun,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` TargetWWNs []string `json:"targetWWNs,omitempty"` - WWIDs []string `json:"wwiDs,omitempty"` + WWIDs []string `json:"wwids,omitempty"` } diff --git a/client/workload/v1/zz_generated_flex_volume_source.go b/client/workload/v1/zz_generated_flex_volume_source.go index 9bf97f14..33751207 100644 --- a/client/workload/v1/zz_generated_flex_volume_source.go +++ b/client/workload/v1/zz_generated_flex_volume_source.go @@ -13,6 +13,6 @@ type FlexVolumeSource struct { Driver string `json:"driver,omitempty"` FSType string `json:"fsType,omitempty"` Options map[string]string `json:"options,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` } diff --git a/client/workload/v1/zz_generated_gce_persistent_disk_volume_source.go b/client/workload/v1/zz_generated_gce_persistent_disk_volume_source.go index bee08d0a..0288de2e 100644 --- a/client/workload/v1/zz_generated_gce_persistent_disk_volume_source.go +++ b/client/workload/v1/zz_generated_gce_persistent_disk_volume_source.go @@ -11,6 +11,6 @@ const ( type GCEPersistentDiskVolumeSource struct { FSType string `json:"fsType,omitempty"` PDName string `json:"pdName,omitempty"` - Partition int64 `json:"partition,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + Partition *int64 `json:"partition,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` } diff --git a/client/workload/v1/zz_generated_glusterfs_volume_source.go b/client/workload/v1/zz_generated_glusterfs_volume_source.go index 509dcd87..649c6e6f 100644 --- a/client/workload/v1/zz_generated_glusterfs_volume_source.go +++ b/client/workload/v1/zz_generated_glusterfs_volume_source.go @@ -2,13 +2,13 @@ package client const ( GlusterfsVolumeSourceType = "glusterfsVolumeSource" - GlusterfsVolumeSourceFieldEndpointsName = "endpointsName" + GlusterfsVolumeSourceFieldEndpointsName = "endpoints" GlusterfsVolumeSourceFieldPath = "path" GlusterfsVolumeSourceFieldReadOnly = "readOnly" ) type GlusterfsVolumeSource struct { - EndpointsName string `json:"endpointsName,omitempty"` + EndpointsName string `json:"endpoints,omitempty"` Path string `json:"path,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` } diff --git a/client/workload/v1/zz_generated_handler.go b/client/workload/v1/zz_generated_handler.go index da3c803b..71c7a2cf 100644 --- a/client/workload/v1/zz_generated_handler.go +++ b/client/workload/v1/zz_generated_handler.go @@ -18,5 +18,5 @@ type Handler struct { Path string `json:"path,omitempty"` Port string `json:"port,omitempty"` Scheme string `json:"scheme,omitempty"` - TCP bool `json:"tcp,omitempty"` + TCP *bool `json:"tcp,omitempty"` } diff --git a/client/workload/v1/zz_generated_iscsi_volume_source.go b/client/workload/v1/zz_generated_iscsi_volume_source.go index fb59b357..c517f972 100644 --- a/client/workload/v1/zz_generated_iscsi_volume_source.go +++ b/client/workload/v1/zz_generated_iscsi_volume_source.go @@ -2,7 +2,7 @@ package client const ( ISCSIVolumeSourceType = "iscsiVolumeSource" - ISCSIVolumeSourceFieldDiscoveryCHAPAuth = "discoveryCHAPAuth" + ISCSIVolumeSourceFieldDiscoveryCHAPAuth = "chapAuthDiscovery" ISCSIVolumeSourceFieldFSType = "fsType" ISCSIVolumeSourceFieldIQN = "iqn" ISCSIVolumeSourceFieldISCSIInterface = "iscsiInterface" @@ -11,20 +11,20 @@ const ( ISCSIVolumeSourceFieldPortals = "portals" ISCSIVolumeSourceFieldReadOnly = "readOnly" ISCSIVolumeSourceFieldSecretRef = "secretRef" - ISCSIVolumeSourceFieldSessionCHAPAuth = "sessionCHAPAuth" + ISCSIVolumeSourceFieldSessionCHAPAuth = "chapAuthSession" ISCSIVolumeSourceFieldTargetPortal = "targetPortal" ) type ISCSIVolumeSource struct { - DiscoveryCHAPAuth bool `json:"discoveryCHAPAuth,omitempty"` + DiscoveryCHAPAuth *bool `json:"chapAuthDiscovery,omitempty"` FSType string `json:"fsType,omitempty"` IQN string `json:"iqn,omitempty"` ISCSIInterface string `json:"iscsiInterface,omitempty"` InitiatorName string `json:"initiatorName,omitempty"` - Lun int64 `json:"lun,omitempty"` + Lun *int64 `json:"lun,omitempty"` Portals []string `json:"portals,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` - SessionCHAPAuth bool `json:"sessionCHAPAuth,omitempty"` + SessionCHAPAuth *bool `json:"chapAuthSession,omitempty"` TargetPortal string `json:"targetPortal,omitempty"` } diff --git a/client/workload/v1/zz_generated_memory_info.go b/client/workload/v1/zz_generated_memory_info.go index f758fb39..ae705e20 100644 --- a/client/workload/v1/zz_generated_memory_info.go +++ b/client/workload/v1/zz_generated_memory_info.go @@ -6,5 +6,5 @@ const ( ) type MemoryInfo struct { - MemTotalKiB int64 `json:"memTotalKiB,omitempty"` + MemTotalKiB *int64 `json:"memTotalKiB,omitempty"` } diff --git a/client/workload/v1/zz_generated_namespace.go b/client/workload/v1/zz_generated_namespace.go index 9acbceef..bce4c0f8 100644 --- a/client/workload/v1/zz_generated_namespace.go +++ b/client/workload/v1/zz_generated_namespace.go @@ -5,31 +5,43 @@ import ( ) const ( - NamespaceType = "namespace" - NamespaceFieldAPIVersion = "apiVersion" - NamespaceFieldAnnotations = "annotations" - NamespaceFieldCreationTimestamp = "creationTimestamp" - NamespaceFieldDeletionTimestamp = "deletionTimestamp" - NamespaceFieldKind = "kind" - NamespaceFieldLabels = "labels" - NamespaceFieldName = "name" - NamespaceFieldNamespace = "namespace" - NamespaceFieldStatus = "status" - NamespaceFieldUID = "uid" + NamespaceType = "namespace" + NamespaceFieldAnnotations = "annotations" + NamespaceFieldAnswers = "answers" + NamespaceFieldCreated = "created" + NamespaceFieldExternalID = "externalId" + NamespaceFieldLabels = "labels" + NamespaceFieldName = "name" + NamespaceFieldNamespace = "namespace" + NamespaceFieldOwnerReferences = "ownerReferences" + NamespaceFieldProjectID = "projectId" + NamespaceFieldPrune = "prune" + NamespaceFieldRemoved = "removed" + NamespaceFieldResourcePath = "resourcePath" + NamespaceFieldStatus = "status" + NamespaceFieldTags = "tags" + NamespaceFieldTemplates = "templates" + NamespaceFieldUuid = "uuid" ) type Namespace struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - Status NamespaceStatus `json:"status,omitempty"` - UID string `json:"uid,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Answers map[string]interface{} `json:"answers,omitempty"` + Created string `json:"created,omitempty"` + ExternalID string `json:"externalId,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + ProjectID string `json:"projectId,omitempty"` + Prune *bool `json:"prune,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Status *NamespaceStatus `json:"status,omitempty"` + Tags []string `json:"tags,omitempty"` + Templates map[string]string `json:"templates,omitempty"` + Uuid string `json:"uuid,omitempty"` } type NamespaceCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_nfs_volume_source.go b/client/workload/v1/zz_generated_nfs_volume_source.go index 2451f378..5b1ccf9c 100644 --- a/client/workload/v1/zz_generated_nfs_volume_source.go +++ b/client/workload/v1/zz_generated_nfs_volume_source.go @@ -9,6 +9,6 @@ const ( type NFSVolumeSource struct { Path string `json:"path,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` Server string `json:"server,omitempty"` } diff --git a/client/workload/v1/zz_generated_node.go b/client/workload/v1/zz_generated_node.go index e998f970..c22f332d 100644 --- a/client/workload/v1/zz_generated_node.go +++ b/client/workload/v1/zz_generated_node.go @@ -5,43 +5,61 @@ import ( ) const ( - NodeType = "node" - NodeFieldAPIVersion = "apiVersion" - NodeFieldAnnotations = "annotations" - NodeFieldConfigSource = "configSource" - NodeFieldCreationTimestamp = "creationTimestamp" - NodeFieldDeletionTimestamp = "deletionTimestamp" - NodeFieldExternalID = "externalID" - NodeFieldKind = "kind" - NodeFieldLabels = "labels" - NodeFieldName = "name" - NodeFieldNamespace = "namespace" - NodeFieldPodCIDR = "podCIDR" - NodeFieldProviderID = "providerID" - NodeFieldStatus = "status" - NodeFieldTaints = "taints" - NodeFieldUID = "uid" - NodeFieldUnschedulable = "unschedulable" + NodeType = "node" + NodeFieldAllocatable = "allocatable" + NodeFieldAnnotations = "annotations" + NodeFieldCapacity = "capacity" + NodeFieldConfigSource = "configSource" + NodeFieldCreated = "created" + NodeFieldExternalID = "externalID" + NodeFieldHostname = "hostname" + NodeFieldIPAddress = "ipAddress" + NodeFieldInfo = "info" + NodeFieldLabels = "labels" + NodeFieldName = "name" + NodeFieldOwnerReferences = "ownerReferences" + NodeFieldPhase = "phase" + NodeFieldPodCIDR = "podCIDR" + NodeFieldProviderID = "providerID" + NodeFieldRemoved = "removed" + NodeFieldResourcePath = "resourcePath" + NodeFieldState = "state" + NodeFieldTaints = "taints" + NodeFieldTransitioning = "transitioning" + NodeFieldTransitioningMessage = "transitioningMessage" + NodeFieldUnschedulable = "unschedulable" + NodeFieldUuid = "uuid" + NodeFieldVolumesAttached = "volumesAttached" + NodeFieldVolumesInUse = "volumesInUse" ) type Node struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - ConfigSource *NodeConfigSource `json:"configSource,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - ExternalID string `json:"externalID,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - PodCIDR string `json:"podCIDR,omitempty"` - ProviderID string `json:"providerID,omitempty"` - Status NodeStatus `json:"status,omitempty"` - Taints []Taint `json:"taints,omitempty"` - UID string `json:"uid,omitempty"` - Unschedulable bool `json:"unschedulable,omitempty"` + Allocatable map[string]string `json:"allocatable,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Capacity map[string]string `json:"capacity,omitempty"` + ConfigSource *NodeConfigSource `json:"configSource,omitempty"` + Created string `json:"created,omitempty"` + ExternalID string `json:"externalID,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPAddress string `json:"ipAddress,omitempty"` + Info *NodeInfo `json:"info,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Phase string `json:"phase,omitempty"` + PodCIDR string `json:"podCIDR,omitempty"` + ProviderID string `json:"providerID,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + State string `json:"state,omitempty"` + Taints []Taint `json:"taints,omitempty"` + Transitioning string `json:"transitioning,omitempty"` + TransitioningMessage string `json:"transitioningMessage,omitempty"` + Unschedulable *bool `json:"unschedulable,omitempty"` + Uuid string `json:"uuid,omitempty"` + VolumesAttached map[string]AttachedVolume `json:"volumesAttached,omitempty"` + VolumesInUse []string `json:"volumesInUse,omitempty"` } type NodeCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_node_daemon_endpoints.go b/client/workload/v1/zz_generated_node_daemon_endpoints.go index d16a91d3..e379cf60 100644 --- a/client/workload/v1/zz_generated_node_daemon_endpoints.go +++ b/client/workload/v1/zz_generated_node_daemon_endpoints.go @@ -6,5 +6,5 @@ const ( ) type NodeDaemonEndpoints struct { - KubeletEndpoint DaemonEndpoint `json:"kubeletEndpoint,omitempty"` + KubeletEndpoint *DaemonEndpoint `json:"kubeletEndpoint,omitempty"` } diff --git a/client/workload/v1/zz_generated_node_info.go b/client/workload/v1/zz_generated_node_info.go index 93d27503..e272fb96 100644 --- a/client/workload/v1/zz_generated_node_info.go +++ b/client/workload/v1/zz_generated_node_info.go @@ -9,8 +9,8 @@ const ( ) type NodeInfo struct { - CPU CPUInfo `json:"cpu,omitempty"` - Kubernetes KubernetesInfo `json:"kubernetes,omitempty"` - Memory MemoryInfo `json:"memory,omitempty"` - OS OSInfo `json:"os,omitempty"` + CPU *CPUInfo `json:"cpu,omitempty"` + Kubernetes *KubernetesInfo `json:"kubernetes,omitempty"` + Memory *MemoryInfo `json:"memory,omitempty"` + OS *OSInfo `json:"os,omitempty"` } diff --git a/client/workload/v1/zz_generated_node_spec.go b/client/workload/v1/zz_generated_node_spec.go index 5c1c81ae..c7e37e9d 100644 --- a/client/workload/v1/zz_generated_node_spec.go +++ b/client/workload/v1/zz_generated_node_spec.go @@ -16,5 +16,5 @@ type NodeSpec struct { PodCIDR string `json:"podCIDR,omitempty"` ProviderID string `json:"providerID,omitempty"` Taints []Taint `json:"taints,omitempty"` - Unschedulable bool `json:"unschedulable,omitempty"` + Unschedulable *bool `json:"unschedulable,omitempty"` } diff --git a/client/workload/v1/zz_generated_node_status.go b/client/workload/v1/zz_generated_node_status.go index 0d8afd3e..fd6bb54f 100644 --- a/client/workload/v1/zz_generated_node_status.go +++ b/client/workload/v1/zz_generated_node_status.go @@ -4,6 +4,7 @@ const ( NodeStatusType = "nodeStatus" NodeStatusFieldAllocatable = "allocatable" NodeStatusFieldCapacity = "capacity" + NodeStatusFieldConditions = "conditions" NodeStatusFieldHostname = "hostname" NodeStatusFieldIPAddress = "ipAddress" NodeStatusFieldInfo = "info" @@ -15,9 +16,10 @@ const ( type NodeStatus struct { Allocatable map[string]string `json:"allocatable,omitempty"` Capacity map[string]string `json:"capacity,omitempty"` + Conditions []NodeCondition `json:"conditions,omitempty"` Hostname string `json:"hostname,omitempty"` IPAddress string `json:"ipAddress,omitempty"` - Info NodeInfo `json:"info,omitempty"` + Info *NodeInfo `json:"info,omitempty"` Phase string `json:"phase,omitempty"` VolumesAttached map[string]AttachedVolume `json:"volumesAttached,omitempty"` VolumesInUse []string `json:"volumesInUse,omitempty"` diff --git a/client/workload/v1/zz_generated_object_meta.go b/client/workload/v1/zz_generated_object_meta.go index a36fe81c..86acd6ff 100644 --- a/client/workload/v1/zz_generated_object_meta.go +++ b/client/workload/v1/zz_generated_object_meta.go @@ -1,22 +1,26 @@ package client const ( - ObjectMetaType = "objectMeta" - ObjectMetaFieldAnnotations = "annotations" - ObjectMetaFieldCreationTimestamp = "creationTimestamp" - ObjectMetaFieldDeletionTimestamp = "deletionTimestamp" - ObjectMetaFieldLabels = "labels" - ObjectMetaFieldName = "name" - ObjectMetaFieldNamespace = "namespace" - ObjectMetaFieldUID = "uid" + ObjectMetaType = "objectMeta" + ObjectMetaFieldAnnotations = "annotations" + ObjectMetaFieldCreated = "created" + ObjectMetaFieldLabels = "labels" + ObjectMetaFieldName = "name" + ObjectMetaFieldNamespace = "namespace" + ObjectMetaFieldOwnerReferences = "ownerReferences" + ObjectMetaFieldRemoved = "removed" + ObjectMetaFieldResourcePath = "resourcePath" + ObjectMetaFieldUuid = "uuid" ) type ObjectMeta struct { - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - UID string `json:"uid,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Uuid string `json:"uuid,omitempty"` } diff --git a/client/workload/v1/zz_generated_persistent_volume_claim.go b/client/workload/v1/zz_generated_persistent_volume_claim.go index 162f4849..982a2fff 100644 --- a/client/workload/v1/zz_generated_persistent_volume_claim.go +++ b/client/workload/v1/zz_generated_persistent_volume_claim.go @@ -5,21 +5,39 @@ import ( ) const ( - PersistentVolumeClaimType = "persistentVolumeClaim" - PersistentVolumeClaimFieldAPIVersion = "apiVersion" - PersistentVolumeClaimFieldKind = "kind" - PersistentVolumeClaimFieldObjectMeta = "objectMeta" - PersistentVolumeClaimFieldSpec = "spec" - PersistentVolumeClaimFieldStatus = "status" + PersistentVolumeClaimType = "persistentVolumeClaim" + PersistentVolumeClaimFieldAccessModes = "accessModes" + PersistentVolumeClaimFieldAnnotations = "annotations" + PersistentVolumeClaimFieldCreated = "created" + PersistentVolumeClaimFieldLabels = "labels" + PersistentVolumeClaimFieldName = "name" + PersistentVolumeClaimFieldOwnerReferences = "ownerReferences" + PersistentVolumeClaimFieldRemoved = "removed" + PersistentVolumeClaimFieldResourcePath = "resourcePath" + PersistentVolumeClaimFieldResources = "resources" + PersistentVolumeClaimFieldSelector = "selector" + PersistentVolumeClaimFieldStatus = "status" + PersistentVolumeClaimFieldStorageClassName = "storageClassName" + PersistentVolumeClaimFieldUuid = "uuid" + PersistentVolumeClaimFieldVolumeName = "volumeName" ) type PersistentVolumeClaim struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Kind string `json:"kind,omitempty"` - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Spec PersistentVolumeClaimSpec `json:"spec,omitempty"` - Status PersistentVolumeClaimStatus `json:"status,omitempty"` + AccessModes []string `json:"accessModes,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Resources *ResourceRequirements `json:"resources,omitempty"` + Selector *LabelSelector `json:"selector,omitempty"` + Status *PersistentVolumeClaimStatus `json:"status,omitempty"` + StorageClassName string `json:"storageClassName,omitempty"` + Uuid string `json:"uuid,omitempty"` + VolumeName string `json:"volumeName,omitempty"` } type PersistentVolumeClaimCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_persistent_volume_claim_spec.go b/client/workload/v1/zz_generated_persistent_volume_claim_spec.go index 86fcfc53..254e92cd 100644 --- a/client/workload/v1/zz_generated_persistent_volume_claim_spec.go +++ b/client/workload/v1/zz_generated_persistent_volume_claim_spec.go @@ -10,9 +10,9 @@ const ( ) type PersistentVolumeClaimSpec struct { - AccessModes []string `json:"accessModes,omitempty"` - Resources ResourceRequirements `json:"resources,omitempty"` - Selector *LabelSelector `json:"selector,omitempty"` - StorageClassName string `json:"storageClassName,omitempty"` - VolumeName string `json:"volumeName,omitempty"` + AccessModes []string `json:"accessModes,omitempty"` + Resources *ResourceRequirements `json:"resources,omitempty"` + Selector *LabelSelector `json:"selector,omitempty"` + StorageClassName string `json:"storageClassName,omitempty"` + VolumeName string `json:"volumeName,omitempty"` } diff --git a/client/workload/v1/zz_generated_persistent_volume_claim_volume_source.go b/client/workload/v1/zz_generated_persistent_volume_claim_volume_source.go index 7323ec8e..0d02de91 100644 --- a/client/workload/v1/zz_generated_persistent_volume_claim_volume_source.go +++ b/client/workload/v1/zz_generated_persistent_volume_claim_volume_source.go @@ -8,5 +8,5 @@ const ( type PersistentVolumeClaimVolumeSource struct { ClaimName string `json:"claimName,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` } diff --git a/client/workload/v1/zz_generated_pod.go b/client/workload/v1/zz_generated_pod.go index a8d8c567..a79a55c1 100644 --- a/client/workload/v1/zz_generated_pod.go +++ b/client/workload/v1/zz_generated_pod.go @@ -6,78 +6,88 @@ import ( const ( PodType = "pod" - PodFieldAPIVersion = "apiVersion" PodFieldActiveDeadlineSeconds = "activeDeadlineSeconds" PodFieldAnnotations = "annotations" PodFieldAutomountServiceAccountToken = "automountServiceAccountToken" PodFieldContainers = "containers" - PodFieldCreationTimestamp = "creationTimestamp" + PodFieldCreated = "created" PodFieldDNSPolicy = "dnsPolicy" - PodFieldDeletionTimestamp = "deletionTimestamp" - PodFieldDeprecatedServiceAccount = "deprecatedServiceAccount" - PodFieldFSGroup = "fsGroup" + PodFieldFsgid = "fsgid" + PodFieldGids = "gids" PodFieldHostAliases = "hostAliases" PodFieldHostname = "hostname" PodFieldIPC = "ipc" - PodFieldImagePullSecrets = "imagePullSecrets" - PodFieldKind = "kind" PodFieldLabels = "labels" PodFieldName = "name" PodFieldNamespace = "namespace" PodFieldNet = "net" - PodFieldNodeName = "nodeName" + PodFieldNodeId = "nodeId" + PodFieldOwnerReferences = "ownerReferences" PodFieldPID = "pid" PodFieldPriority = "priority" PodFieldPriorityClassName = "priorityClassName" - PodFieldRestartPolicy = "restartPolicy" + PodFieldProjectID = "projectId" + PodFieldPullSecrets = "pullSecrets" + PodFieldRemoved = "removed" + PodFieldResourcePath = "resourcePath" + PodFieldRestart = "restart" PodFieldRunAsNonRoot = "runAsNonRoot" - PodFieldRunAsUser = "runAsUser" PodFieldSchedulerName = "schedulerName" PodFieldServiceAccountName = "serviceAccountName" + PodFieldState = "state" + PodFieldStatus = "status" PodFieldSubdomain = "subdomain" - PodFieldSupplementalGroups = "supplementalGroups" PodFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" PodFieldTolerations = "tolerations" - PodFieldUID = "uid" + PodFieldTransitioning = "transitioning" + PodFieldTransitioningMessage = "transitioningMessage" + PodFieldUid = "uid" + PodFieldUuid = "uuid" PodFieldVolumes = "volumes" + PodFieldWorkloadID = "workloadId" ) type Pod struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` Containers map[string]Container `json:"containers,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` + Created string `json:"created,omitempty"` DNSPolicy string `json:"dnsPolicy,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - DeprecatedServiceAccount string `json:"deprecatedServiceAccount,omitempty"` - FSGroup *int64 `json:"fsGroup,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` Hostname string `json:"hostname,omitempty"` IPC string `json:"ipc,omitempty"` - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"` - Kind string `json:"kind,omitempty"` Labels map[string]string `json:"labels,omitempty"` Name string `json:"name,omitempty"` Namespace string `json:"namespace,omitempty"` Net string `json:"net,omitempty"` - NodeName string `json:"nodeName,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` PID string `json:"pid,omitempty"` Priority *int64 `json:"priority,omitempty"` PriorityClassName string `json:"priorityClassName,omitempty"` - RestartPolicy string `json:"restartPolicy,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `json:"runAsUser,omitempty"` SchedulerName string `json:"schedulerName,omitempty"` ServiceAccountName string `json:"serviceAccountName,omitempty"` + State string `json:"state,omitempty"` + Status *PodStatus `json:"status,omitempty"` Subdomain string `json:"subdomain,omitempty"` - SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` Tolerations []Toleration `json:"tolerations,omitempty"` - UID string `json:"uid,omitempty"` + Transitioning string `json:"transitioning,omitempty"` + TransitioningMessage string `json:"transitioningMessage,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Uuid string `json:"uuid,omitempty"` Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadID string `json:"workloadId,omitempty"` } type PodCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_pod_security_context.go b/client/workload/v1/zz_generated_pod_security_context.go index ee53032e..9ae766fd 100644 --- a/client/workload/v1/zz_generated_pod_security_context.go +++ b/client/workload/v1/zz_generated_pod_security_context.go @@ -1,16 +1,16 @@ package client const ( - PodSecurityContextType = "podSecurityContext" - PodSecurityContextFieldFSGroup = "fsGroup" - PodSecurityContextFieldRunAsNonRoot = "runAsNonRoot" - PodSecurityContextFieldRunAsUser = "runAsUser" - PodSecurityContextFieldSupplementalGroups = "supplementalGroups" + PodSecurityContextType = "podSecurityContext" + PodSecurityContextFieldFsgid = "fsgid" + PodSecurityContextFieldGids = "gids" + PodSecurityContextFieldRunAsNonRoot = "runAsNonRoot" + PodSecurityContextFieldUid = "uid" ) type PodSecurityContext struct { - FSGroup *int64 `json:"fsGroup,omitempty"` - RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `json:"runAsUser,omitempty"` - SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Uid *int64 `json:"uid,omitempty"` } diff --git a/client/workload/v1/zz_generated_pod_spec.go b/client/workload/v1/zz_generated_pod_spec.go index 6bd45fb3..d12a183b 100644 --- a/client/workload/v1/zz_generated_pod_spec.go +++ b/client/workload/v1/zz_generated_pod_spec.go @@ -6,26 +6,25 @@ const ( PodSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" PodSpecFieldContainers = "containers" PodSpecFieldDNSPolicy = "dnsPolicy" - PodSpecFieldDeprecatedServiceAccount = "deprecatedServiceAccount" - PodSpecFieldFSGroup = "fsGroup" + PodSpecFieldFsgid = "fsgid" + PodSpecFieldGids = "gids" PodSpecFieldHostAliases = "hostAliases" PodSpecFieldHostname = "hostname" PodSpecFieldIPC = "ipc" - PodSpecFieldImagePullSecrets = "imagePullSecrets" PodSpecFieldNet = "net" - PodSpecFieldNodeName = "nodeName" + PodSpecFieldNodeId = "nodeId" PodSpecFieldPID = "pid" PodSpecFieldPriority = "priority" PodSpecFieldPriorityClassName = "priorityClassName" - PodSpecFieldRestartPolicy = "restartPolicy" + PodSpecFieldPullSecrets = "pullSecrets" + PodSpecFieldRestart = "restart" PodSpecFieldRunAsNonRoot = "runAsNonRoot" - PodSpecFieldRunAsUser = "runAsUser" PodSpecFieldSchedulerName = "schedulerName" PodSpecFieldServiceAccountName = "serviceAccountName" PodSpecFieldSubdomain = "subdomain" - PodSpecFieldSupplementalGroups = "supplementalGroups" PodSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" PodSpecFieldTolerations = "tolerations" + PodSpecFieldUid = "uid" PodSpecFieldVolumes = "volumes" ) @@ -34,25 +33,24 @@ type PodSpec struct { AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` Containers map[string]Container `json:"containers,omitempty"` DNSPolicy string `json:"dnsPolicy,omitempty"` - DeprecatedServiceAccount string `json:"deprecatedServiceAccount,omitempty"` - FSGroup *int64 `json:"fsGroup,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` Hostname string `json:"hostname,omitempty"` IPC string `json:"ipc,omitempty"` - ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"` Net string `json:"net,omitempty"` - NodeName string `json:"nodeName,omitempty"` + NodeId string `json:"nodeId,omitempty"` PID string `json:"pid,omitempty"` Priority *int64 `json:"priority,omitempty"` PriorityClassName string `json:"priorityClassName,omitempty"` - RestartPolicy string `json:"restartPolicy,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `json:"runAsUser,omitempty"` SchedulerName string `json:"schedulerName,omitempty"` ServiceAccountName string `json:"serviceAccountName,omitempty"` Subdomain string `json:"subdomain,omitempty"` - SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` Volumes map[string]Volume `json:"volumes,omitempty"` } diff --git a/client/workload/v1/zz_generated_pod_status.go b/client/workload/v1/zz_generated_pod_status.go index 0cbbbef1..213da455 100644 --- a/client/workload/v1/zz_generated_pod_status.go +++ b/client/workload/v1/zz_generated_pod_status.go @@ -4,11 +4,11 @@ const ( PodStatusType = "podStatus" PodStatusFieldConditions = "conditions" PodStatusFieldContainerStatuses = "containerStatuses" - PodStatusFieldHostIP = "hostIP" PodStatusFieldInitContainerStatuses = "initContainerStatuses" PodStatusFieldMessage = "message" + PodStatusFieldNodeIp = "nodeIp" PodStatusFieldPhase = "phase" - PodStatusFieldPodIP = "podIP" + PodStatusFieldPodIp = "podIp" PodStatusFieldQOSClass = "qosClass" PodStatusFieldReason = "reason" PodStatusFieldStartTime = "startTime" @@ -17,11 +17,11 @@ const ( type PodStatus struct { Conditions []PodCondition `json:"conditions,omitempty"` ContainerStatuses []ContainerStatus `json:"containerStatuses,omitempty"` - HostIP string `json:"hostIP,omitempty"` InitContainerStatuses []ContainerStatus `json:"initContainerStatuses,omitempty"` Message string `json:"message,omitempty"` + NodeIp string `json:"nodeIp,omitempty"` Phase string `json:"phase,omitempty"` - PodIP string `json:"podIP,omitempty"` + PodIp string `json:"podIp,omitempty"` QOSClass string `json:"qosClass,omitempty"` Reason string `json:"reason,omitempty"` StartTime string `json:"startTime,omitempty"` diff --git a/client/workload/v1/zz_generated_pod_template_spec.go b/client/workload/v1/zz_generated_pod_template_spec.go index 3743d597..eb42bf9e 100644 --- a/client/workload/v1/zz_generated_pod_template_spec.go +++ b/client/workload/v1/zz_generated_pod_template_spec.go @@ -1,12 +1,58 @@ package client const ( - PodTemplateSpecType = "podTemplateSpec" - PodTemplateSpecFieldObjectMeta = "objectMeta" - PodTemplateSpecFieldSpec = "spec" + PodTemplateSpecType = "podTemplateSpec" + PodTemplateSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + PodTemplateSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + PodTemplateSpecFieldContainers = "containers" + PodTemplateSpecFieldDNSPolicy = "dnsPolicy" + PodTemplateSpecFieldFsgid = "fsgid" + PodTemplateSpecFieldGids = "gids" + PodTemplateSpecFieldHostAliases = "hostAliases" + PodTemplateSpecFieldHostname = "hostname" + PodTemplateSpecFieldIPC = "ipc" + PodTemplateSpecFieldNet = "net" + PodTemplateSpecFieldNodeId = "nodeId" + PodTemplateSpecFieldObjectMeta = "metadata" + PodTemplateSpecFieldPID = "pid" + PodTemplateSpecFieldPriority = "priority" + PodTemplateSpecFieldPriorityClassName = "priorityClassName" + PodTemplateSpecFieldPullSecrets = "pullSecrets" + PodTemplateSpecFieldRestart = "restart" + PodTemplateSpecFieldRunAsNonRoot = "runAsNonRoot" + PodTemplateSpecFieldSchedulerName = "schedulerName" + PodTemplateSpecFieldServiceAccountName = "serviceAccountName" + PodTemplateSpecFieldSubdomain = "subdomain" + PodTemplateSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + PodTemplateSpecFieldTolerations = "tolerations" + PodTemplateSpecFieldUid = "uid" + PodTemplateSpecFieldVolumes = "volumes" ) type PodTemplateSpec struct { - ObjectMeta ObjectMeta `json:"objectMeta,omitempty"` - Spec PodSpec `json:"spec,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` } diff --git a/client/workload/v1/zz_generated_portworx_volume_source.go b/client/workload/v1/zz_generated_portworx_volume_source.go index 502d9e36..50372f00 100644 --- a/client/workload/v1/zz_generated_portworx_volume_source.go +++ b/client/workload/v1/zz_generated_portworx_volume_source.go @@ -9,6 +9,6 @@ const ( type PortworxVolumeSource struct { FSType string `json:"fsType,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` VolumeID string `json:"volumeID,omitempty"` } diff --git a/client/workload/v1/zz_generated_preferred_scheduling_term.go b/client/workload/v1/zz_generated_preferred_scheduling_term.go index 6e092c04..19efc356 100644 --- a/client/workload/v1/zz_generated_preferred_scheduling_term.go +++ b/client/workload/v1/zz_generated_preferred_scheduling_term.go @@ -7,6 +7,6 @@ const ( ) type PreferredSchedulingTerm struct { - Preference NodeSelectorTerm `json:"preference,omitempty"` - Weight int64 `json:"weight,omitempty"` + Preference *NodeSelectorTerm `json:"preference,omitempty"` + Weight *int64 `json:"weight,omitempty"` } diff --git a/client/workload/v1/zz_generated_probe.go b/client/workload/v1/zz_generated_probe.go index 180e73f6..25102a82 100644 --- a/client/workload/v1/zz_generated_probe.go +++ b/client/workload/v1/zz_generated_probe.go @@ -18,15 +18,15 @@ const ( type Probe struct { Command []string `json:"command,omitempty"` - FailureThreshold int64 `json:"failureThreshold,omitempty"` + FailureThreshold *int64 `json:"failureThreshold,omitempty"` HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"` Host string `json:"host,omitempty"` - InitialDelaySeconds int64 `json:"initialDelaySeconds,omitempty"` + InitialDelaySeconds *int64 `json:"initialDelaySeconds,omitempty"` Path string `json:"path,omitempty"` - PeriodSeconds int64 `json:"periodSeconds,omitempty"` + PeriodSeconds *int64 `json:"periodSeconds,omitempty"` Port string `json:"port,omitempty"` Scheme string `json:"scheme,omitempty"` - SuccessThreshold int64 `json:"successThreshold,omitempty"` - TCP bool `json:"tcp,omitempty"` - TimeoutSeconds int64 `json:"timeoutSeconds,omitempty"` + SuccessThreshold *int64 `json:"successThreshold,omitempty"` + TCP *bool `json:"tcp,omitempty"` + TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"` } diff --git a/client/workload/v1/zz_generated_quobyte_volume_source.go b/client/workload/v1/zz_generated_quobyte_volume_source.go index 68f60def..c1df085a 100644 --- a/client/workload/v1/zz_generated_quobyte_volume_source.go +++ b/client/workload/v1/zz_generated_quobyte_volume_source.go @@ -11,7 +11,7 @@ const ( type QuobyteVolumeSource struct { Group string `json:"group,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` Registry string `json:"registry,omitempty"` User string `json:"user,omitempty"` Volume string `json:"volume,omitempty"` diff --git a/client/workload/v1/zz_generated_rbd_volume_source.go b/client/workload/v1/zz_generated_rbd_volume_source.go index 503046b6..390a40b5 100644 --- a/client/workload/v1/zz_generated_rbd_volume_source.go +++ b/client/workload/v1/zz_generated_rbd_volume_source.go @@ -2,23 +2,23 @@ package client const ( RBDVolumeSourceType = "rbdVolumeSource" - RBDVolumeSourceFieldCephMonitors = "cephMonitors" + RBDVolumeSourceFieldCephMonitors = "monitors" RBDVolumeSourceFieldFSType = "fsType" RBDVolumeSourceFieldKeyring = "keyring" - RBDVolumeSourceFieldRBDImage = "rbdImage" - RBDVolumeSourceFieldRBDPool = "rbdPool" - RBDVolumeSourceFieldRadosUser = "radosUser" + RBDVolumeSourceFieldRBDImage = "image" + RBDVolumeSourceFieldRBDPool = "pool" + RBDVolumeSourceFieldRadosUser = "user" RBDVolumeSourceFieldReadOnly = "readOnly" RBDVolumeSourceFieldSecretRef = "secretRef" ) type RBDVolumeSource struct { - CephMonitors []string `json:"cephMonitors,omitempty"` + CephMonitors []string `json:"monitors,omitempty"` FSType string `json:"fsType,omitempty"` Keyring string `json:"keyring,omitempty"` - RBDImage string `json:"rbdImage,omitempty"` - RBDPool string `json:"rbdPool,omitempty"` - RadosUser string `json:"radosUser,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + RBDImage string `json:"image,omitempty"` + RBDPool string `json:"pool,omitempty"` + RadosUser string `json:"user,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` } diff --git a/client/workload/v1/zz_generated_replica_set.go b/client/workload/v1/zz_generated_replica_set.go index 5b92dd27..2301fe7c 100644 --- a/client/workload/v1/zz_generated_replica_set.go +++ b/client/workload/v1/zz_generated_replica_set.go @@ -5,35 +5,91 @@ import ( ) const ( - ReplicaSetType = "replicaSet" - ReplicaSetFieldAPIVersion = "apiVersion" - ReplicaSetFieldAnnotations = "annotations" - ReplicaSetFieldCreationTimestamp = "creationTimestamp" - ReplicaSetFieldDeletionTimestamp = "deletionTimestamp" - ReplicaSetFieldDeploy = "deploy" - ReplicaSetFieldKind = "kind" - ReplicaSetFieldLabels = "labels" - ReplicaSetFieldName = "name" - ReplicaSetFieldNamespace = "namespace" - ReplicaSetFieldStatus = "status" - ReplicaSetFieldTemplate = "template" - ReplicaSetFieldUID = "uid" + ReplicaSetType = "replicaSet" + ReplicaSetFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + ReplicaSetFieldAnnotations = "annotations" + ReplicaSetFieldAutomountServiceAccountToken = "automountServiceAccountToken" + ReplicaSetFieldBatchSize = "batchSize" + ReplicaSetFieldContainers = "containers" + ReplicaSetFieldCreated = "created" + ReplicaSetFieldDNSPolicy = "dnsPolicy" + ReplicaSetFieldDeploymentStrategy = "deploymentStrategy" + ReplicaSetFieldFsgid = "fsgid" + ReplicaSetFieldGids = "gids" + ReplicaSetFieldHostAliases = "hostAliases" + ReplicaSetFieldHostname = "hostname" + ReplicaSetFieldIPC = "ipc" + ReplicaSetFieldLabels = "labels" + ReplicaSetFieldName = "name" + ReplicaSetFieldNamespace = "namespace" + ReplicaSetFieldNet = "net" + ReplicaSetFieldNodeId = "nodeId" + ReplicaSetFieldOwnerReferences = "ownerReferences" + ReplicaSetFieldPID = "pid" + ReplicaSetFieldPriority = "priority" + ReplicaSetFieldPriorityClassName = "priorityClassName" + ReplicaSetFieldProjectID = "projectId" + ReplicaSetFieldPullSecrets = "pullSecrets" + ReplicaSetFieldRemoved = "removed" + ReplicaSetFieldResourcePath = "resourcePath" + ReplicaSetFieldRestart = "restart" + ReplicaSetFieldRunAsNonRoot = "runAsNonRoot" + ReplicaSetFieldScale = "scale" + ReplicaSetFieldSchedulerName = "schedulerName" + ReplicaSetFieldServiceAccountName = "serviceAccountName" + ReplicaSetFieldStatus = "status" + ReplicaSetFieldSubdomain = "subdomain" + ReplicaSetFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + ReplicaSetFieldTolerations = "tolerations" + ReplicaSetFieldUid = "uid" + ReplicaSetFieldUuid = "uuid" + ReplicaSetFieldVolumes = "volumes" + ReplicaSetFieldWorkloadAnnotations = "workloadAnnotations" + ReplicaSetFieldWorkloadLabels = "workloadLabels" ) type ReplicaSet struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Deploy *DeployParams `json:"deploy,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - Status ReplicaSetStatus `json:"status,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` - UID string `json:"uid,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Status *ReplicaSetStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` } type ReplicaSetCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_replica_set_spec.go b/client/workload/v1/zz_generated_replica_set_spec.go index 92357c79..9fc06ca4 100644 --- a/client/workload/v1/zz_generated_replica_set_spec.go +++ b/client/workload/v1/zz_generated_replica_set_spec.go @@ -1,12 +1,64 @@ package client const ( - ReplicaSetSpecType = "replicaSetSpec" - ReplicaSetSpecFieldDeploy = "deploy" - ReplicaSetSpecFieldTemplate = "template" + ReplicaSetSpecType = "replicaSetSpec" + ReplicaSetSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + ReplicaSetSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + ReplicaSetSpecFieldBatchSize = "batchSize" + ReplicaSetSpecFieldContainers = "containers" + ReplicaSetSpecFieldDNSPolicy = "dnsPolicy" + ReplicaSetSpecFieldDeploymentStrategy = "deploymentStrategy" + ReplicaSetSpecFieldFsgid = "fsgid" + ReplicaSetSpecFieldGids = "gids" + ReplicaSetSpecFieldHostAliases = "hostAliases" + ReplicaSetSpecFieldHostname = "hostname" + ReplicaSetSpecFieldIPC = "ipc" + ReplicaSetSpecFieldNet = "net" + ReplicaSetSpecFieldNodeId = "nodeId" + ReplicaSetSpecFieldObjectMeta = "metadata" + ReplicaSetSpecFieldPID = "pid" + ReplicaSetSpecFieldPriority = "priority" + ReplicaSetSpecFieldPriorityClassName = "priorityClassName" + ReplicaSetSpecFieldPullSecrets = "pullSecrets" + ReplicaSetSpecFieldRestart = "restart" + ReplicaSetSpecFieldRunAsNonRoot = "runAsNonRoot" + ReplicaSetSpecFieldScale = "scale" + ReplicaSetSpecFieldSchedulerName = "schedulerName" + ReplicaSetSpecFieldServiceAccountName = "serviceAccountName" + ReplicaSetSpecFieldSubdomain = "subdomain" + ReplicaSetSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + ReplicaSetSpecFieldTolerations = "tolerations" + ReplicaSetSpecFieldUid = "uid" + ReplicaSetSpecFieldVolumes = "volumes" ) type ReplicaSetSpec struct { - Deploy *DeployParams `json:"deploy,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` } diff --git a/client/workload/v1/zz_generated_replica_set_status.go b/client/workload/v1/zz_generated_replica_set_status.go index a21df089..3ece36d5 100644 --- a/client/workload/v1/zz_generated_replica_set_status.go +++ b/client/workload/v1/zz_generated_replica_set_status.go @@ -11,10 +11,10 @@ const ( ) type ReplicaSetStatus struct { - AvailableReplicas int64 `json:"availableReplicas,omitempty"` + AvailableReplicas *int64 `json:"availableReplicas,omitempty"` Conditions []ReplicaSetCondition `json:"conditions,omitempty"` - FullyLabeledReplicas int64 `json:"fullyLabeledReplicas,omitempty"` - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - ReadyReplicas int64 `json:"readyReplicas,omitempty"` - Replicas int64 `json:"replicas,omitempty"` + FullyLabeledReplicas *int64 `json:"fullyLabeledReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ReadyReplicas *int64 `json:"readyReplicas,omitempty"` + Replicas *int64 `json:"replicas,omitempty"` } diff --git a/client/workload/v1/zz_generated_replication_controller.go b/client/workload/v1/zz_generated_replication_controller.go new file mode 100644 index 00000000..62748b9d --- /dev/null +++ b/client/workload/v1/zz_generated_replication_controller.go @@ -0,0 +1,155 @@ +package client + +import ( + "github.com/rancher/norman/types" +) + +const ( + ReplicationControllerType = "replicationController" + ReplicationControllerFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + ReplicationControllerFieldAnnotations = "annotations" + ReplicationControllerFieldAutomountServiceAccountToken = "automountServiceAccountToken" + ReplicationControllerFieldBatchSize = "batchSize" + ReplicationControllerFieldContainers = "containers" + ReplicationControllerFieldCreated = "created" + ReplicationControllerFieldDNSPolicy = "dnsPolicy" + ReplicationControllerFieldDeploymentStrategy = "deploymentStrategy" + ReplicationControllerFieldFsgid = "fsgid" + ReplicationControllerFieldGids = "gids" + ReplicationControllerFieldHostAliases = "hostAliases" + ReplicationControllerFieldHostname = "hostname" + ReplicationControllerFieldIPC = "ipc" + ReplicationControllerFieldLabels = "labels" + ReplicationControllerFieldName = "name" + ReplicationControllerFieldNamespace = "namespace" + ReplicationControllerFieldNet = "net" + ReplicationControllerFieldNodeId = "nodeId" + ReplicationControllerFieldOwnerReferences = "ownerReferences" + ReplicationControllerFieldPID = "pid" + ReplicationControllerFieldPriority = "priority" + ReplicationControllerFieldPriorityClassName = "priorityClassName" + ReplicationControllerFieldProjectID = "projectId" + ReplicationControllerFieldPullSecrets = "pullSecrets" + ReplicationControllerFieldRemoved = "removed" + ReplicationControllerFieldResourcePath = "resourcePath" + ReplicationControllerFieldRestart = "restart" + ReplicationControllerFieldRunAsNonRoot = "runAsNonRoot" + ReplicationControllerFieldScale = "scale" + ReplicationControllerFieldSchedulerName = "schedulerName" + ReplicationControllerFieldServiceAccountName = "serviceAccountName" + ReplicationControllerFieldStatus = "status" + ReplicationControllerFieldSubdomain = "subdomain" + ReplicationControllerFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + ReplicationControllerFieldTolerations = "tolerations" + ReplicationControllerFieldUid = "uid" + ReplicationControllerFieldUuid = "uuid" + ReplicationControllerFieldVolumes = "volumes" + ReplicationControllerFieldWorkloadAnnotations = "workloadAnnotations" + ReplicationControllerFieldWorkloadLabels = "workloadLabels" +) + +type ReplicationController struct { + types.Resource + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Status *ReplicationControllerStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` +} +type ReplicationControllerCollection struct { + types.Collection + Data []ReplicationController `json:"data,omitempty"` + client *ReplicationControllerClient +} + +type ReplicationControllerClient struct { + apiClient *Client +} + +type ReplicationControllerOperations interface { + List(opts *types.ListOpts) (*ReplicationControllerCollection, error) + Create(opts *ReplicationController) (*ReplicationController, error) + Update(existing *ReplicationController, updates interface{}) (*ReplicationController, error) + ByID(id string) (*ReplicationController, error) + Delete(container *ReplicationController) error +} + +func newReplicationControllerClient(apiClient *Client) *ReplicationControllerClient { + return &ReplicationControllerClient{ + apiClient: apiClient, + } +} + +func (c *ReplicationControllerClient) Create(container *ReplicationController) (*ReplicationController, error) { + resp := &ReplicationController{} + err := c.apiClient.Ops.DoCreate(ReplicationControllerType, container, resp) + return resp, err +} + +func (c *ReplicationControllerClient) Update(existing *ReplicationController, updates interface{}) (*ReplicationController, error) { + resp := &ReplicationController{} + err := c.apiClient.Ops.DoUpdate(ReplicationControllerType, &existing.Resource, updates, resp) + return resp, err +} + +func (c *ReplicationControllerClient) List(opts *types.ListOpts) (*ReplicationControllerCollection, error) { + resp := &ReplicationControllerCollection{} + err := c.apiClient.Ops.DoList(ReplicationControllerType, opts, resp) + resp.client = c + return resp, err +} + +func (cc *ReplicationControllerCollection) Next() (*ReplicationControllerCollection, error) { + if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" { + resp := &ReplicationControllerCollection{} + err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp) + resp.client = cc.client + return resp, err + } + return nil, nil +} + +func (c *ReplicationControllerClient) ByID(id string) (*ReplicationController, error) { + resp := &ReplicationController{} + err := c.apiClient.Ops.DoByID(ReplicationControllerType, id, resp) + return resp, err +} + +func (c *ReplicationControllerClient) Delete(container *ReplicationController) error { + return c.apiClient.Ops.DoResourceDelete(ReplicationControllerType, &container.Resource) +} diff --git a/client/workload/v1/zz_generated_replication_controller_condition.go b/client/workload/v1/zz_generated_replication_controller_condition.go new file mode 100644 index 00000000..fe90ec1f --- /dev/null +++ b/client/workload/v1/zz_generated_replication_controller_condition.go @@ -0,0 +1,18 @@ +package client + +const ( + ReplicationControllerConditionType = "replicationControllerCondition" + ReplicationControllerConditionFieldLastTransitionTime = "lastTransitionTime" + ReplicationControllerConditionFieldMessage = "message" + ReplicationControllerConditionFieldReason = "reason" + ReplicationControllerConditionFieldStatus = "status" + ReplicationControllerConditionFieldType = "type" +) + +type ReplicationControllerCondition struct { + LastTransitionTime string `json:"lastTransitionTime,omitempty"` + Message string `json:"message,omitempty"` + Reason string `json:"reason,omitempty"` + Status string `json:"status,omitempty"` + Type string `json:"type,omitempty"` +} diff --git a/client/workload/v1/zz_generated_replication_controller_spec.go b/client/workload/v1/zz_generated_replication_controller_spec.go new file mode 100644 index 00000000..da17fa72 --- /dev/null +++ b/client/workload/v1/zz_generated_replication_controller_spec.go @@ -0,0 +1,64 @@ +package client + +const ( + ReplicationControllerSpecType = "replicationControllerSpec" + ReplicationControllerSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + ReplicationControllerSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + ReplicationControllerSpecFieldBatchSize = "batchSize" + ReplicationControllerSpecFieldContainers = "containers" + ReplicationControllerSpecFieldDNSPolicy = "dnsPolicy" + ReplicationControllerSpecFieldDeploymentStrategy = "deploymentStrategy" + ReplicationControllerSpecFieldFsgid = "fsgid" + ReplicationControllerSpecFieldGids = "gids" + ReplicationControllerSpecFieldHostAliases = "hostAliases" + ReplicationControllerSpecFieldHostname = "hostname" + ReplicationControllerSpecFieldIPC = "ipc" + ReplicationControllerSpecFieldNet = "net" + ReplicationControllerSpecFieldNodeId = "nodeId" + ReplicationControllerSpecFieldObjectMeta = "metadata" + ReplicationControllerSpecFieldPID = "pid" + ReplicationControllerSpecFieldPriority = "priority" + ReplicationControllerSpecFieldPriorityClassName = "priorityClassName" + ReplicationControllerSpecFieldPullSecrets = "pullSecrets" + ReplicationControllerSpecFieldRestart = "restart" + ReplicationControllerSpecFieldRunAsNonRoot = "runAsNonRoot" + ReplicationControllerSpecFieldScale = "scale" + ReplicationControllerSpecFieldSchedulerName = "schedulerName" + ReplicationControllerSpecFieldServiceAccountName = "serviceAccountName" + ReplicationControllerSpecFieldSubdomain = "subdomain" + ReplicationControllerSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + ReplicationControllerSpecFieldTolerations = "tolerations" + ReplicationControllerSpecFieldUid = "uid" + ReplicationControllerSpecFieldVolumes = "volumes" +) + +type ReplicationControllerSpec struct { + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` +} diff --git a/client/workload/v1/zz_generated_replication_controller_status.go b/client/workload/v1/zz_generated_replication_controller_status.go new file mode 100644 index 00000000..4d352a53 --- /dev/null +++ b/client/workload/v1/zz_generated_replication_controller_status.go @@ -0,0 +1,20 @@ +package client + +const ( + ReplicationControllerStatusType = "replicationControllerStatus" + ReplicationControllerStatusFieldAvailableReplicas = "availableReplicas" + ReplicationControllerStatusFieldConditions = "conditions" + ReplicationControllerStatusFieldFullyLabeledReplicas = "fullyLabeledReplicas" + ReplicationControllerStatusFieldObservedGeneration = "observedGeneration" + ReplicationControllerStatusFieldReadyReplicas = "readyReplicas" + ReplicationControllerStatusFieldReplicas = "replicas" +) + +type ReplicationControllerStatus struct { + AvailableReplicas *int64 `json:"availableReplicas,omitempty"` + Conditions []ReplicationControllerCondition `json:"conditions,omitempty"` + FullyLabeledReplicas *int64 `json:"fullyLabeledReplicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ReadyReplicas *int64 `json:"readyReplicas,omitempty"` + Replicas *int64 `json:"replicas,omitempty"` +} diff --git a/client/workload/v1/zz_generated_rolling_update_daemon_set.go b/client/workload/v1/zz_generated_rolling_update_daemon_set.go new file mode 100644 index 00000000..09cb02c9 --- /dev/null +++ b/client/workload/v1/zz_generated_rolling_update_daemon_set.go @@ -0,0 +1,10 @@ +package client + +const ( + RollingUpdateDaemonSetType = "rollingUpdateDaemonSet" + RollingUpdateDaemonSetFieldMaxUnavailable = "maxUnavailable" +) + +type RollingUpdateDaemonSet struct { + MaxUnavailable string `json:"maxUnavailable,omitempty"` +} diff --git a/client/workload/v1/zz_generated_scale_iovolume_source.go b/client/workload/v1/zz_generated_scale_iovolume_source.go index 404cb7ad..01a21a86 100644 --- a/client/workload/v1/zz_generated_scale_iovolume_source.go +++ b/client/workload/v1/zz_generated_scale_iovolume_source.go @@ -18,8 +18,8 @@ type ScaleIOVolumeSource struct { FSType string `json:"fsType,omitempty"` Gateway string `json:"gateway,omitempty"` ProtectionDomain string `json:"protectionDomain,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` - SSLEnabled bool `json:"sslEnabled,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` + SSLEnabled *bool `json:"sslEnabled,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` StorageMode string `json:"storageMode,omitempty"` StoragePool string `json:"storagePool,omitempty"` diff --git a/client/workload/v1/zz_generated_security_context.go b/client/workload/v1/zz_generated_security_context.go index a2223b42..6e04ba05 100644 --- a/client/workload/v1/zz_generated_security_context.go +++ b/client/workload/v1/zz_generated_security_context.go @@ -2,21 +2,21 @@ package client const ( SecurityContextType = "securityContext" - SecurityContextFieldAdd = "add" SecurityContextFieldAllowPrivilegeEscalation = "allowPrivilegeEscalation" - SecurityContextFieldDrop = "drop" + SecurityContextFieldCapAdd = "capAdd" + SecurityContextFieldCapDrop = "capDrop" SecurityContextFieldPrivileged = "privileged" - SecurityContextFieldReadOnlyRootFilesystem = "readOnlyRootFilesystem" + SecurityContextFieldReadOnly = "readOnly" SecurityContextFieldRunAsNonRoot = "runAsNonRoot" - SecurityContextFieldRunAsUser = "runAsUser" + SecurityContextFieldUid = "uid" ) type SecurityContext struct { - Add []string `json:"add,omitempty"` AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"` - Drop []string `json:"drop,omitempty"` + CapAdd []string `json:"capAdd,omitempty"` + CapDrop []string `json:"capDrop,omitempty"` Privileged *bool `json:"privileged,omitempty"` - ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `json:"runAsUser,omitempty"` + Uid *int64 `json:"uid,omitempty"` } diff --git a/client/workload/v1/zz_generated_stateful_set.go b/client/workload/v1/zz_generated_stateful_set.go index 5d2b4751..2ff89a45 100644 --- a/client/workload/v1/zz_generated_stateful_set.go +++ b/client/workload/v1/zz_generated_stateful_set.go @@ -5,41 +5,101 @@ import ( ) const ( - StatefulSetType = "statefulSet" - StatefulSetFieldAPIVersion = "apiVersion" - StatefulSetFieldAnnotations = "annotations" - StatefulSetFieldCreationTimestamp = "creationTimestamp" - StatefulSetFieldDeletionTimestamp = "deletionTimestamp" - StatefulSetFieldDeploy = "deploy" - StatefulSetFieldKind = "kind" - StatefulSetFieldLabels = "labels" - StatefulSetFieldName = "name" - StatefulSetFieldNamespace = "namespace" - StatefulSetFieldServiceName = "serviceName" - StatefulSetFieldStatus = "status" - StatefulSetFieldTemplate = "template" - StatefulSetFieldUID = "uid" - StatefulSetFieldUpdateStrategy = "updateStrategy" - StatefulSetFieldVolumeClaimTemplates = "volumeClaimTemplates" + StatefulSetType = "statefulSet" + StatefulSetFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + StatefulSetFieldAnnotations = "annotations" + StatefulSetFieldAutomountServiceAccountToken = "automountServiceAccountToken" + StatefulSetFieldBatchSize = "batchSize" + StatefulSetFieldContainers = "containers" + StatefulSetFieldCreated = "created" + StatefulSetFieldDNSPolicy = "dnsPolicy" + StatefulSetFieldDeploymentStrategy = "deploymentStrategy" + StatefulSetFieldFsgid = "fsgid" + StatefulSetFieldGids = "gids" + StatefulSetFieldHostAliases = "hostAliases" + StatefulSetFieldHostname = "hostname" + StatefulSetFieldIPC = "ipc" + StatefulSetFieldLabels = "labels" + StatefulSetFieldName = "name" + StatefulSetFieldNamespace = "namespace" + StatefulSetFieldNet = "net" + StatefulSetFieldNodeId = "nodeId" + StatefulSetFieldOwnerReferences = "ownerReferences" + StatefulSetFieldPID = "pid" + StatefulSetFieldPodManagementPolicy = "podManagementPolicy" + StatefulSetFieldPriority = "priority" + StatefulSetFieldPriorityClassName = "priorityClassName" + StatefulSetFieldProjectID = "projectId" + StatefulSetFieldPullSecrets = "pullSecrets" + StatefulSetFieldRemoved = "removed" + StatefulSetFieldResourcePath = "resourcePath" + StatefulSetFieldRestart = "restart" + StatefulSetFieldRevisionHistoryLimit = "revisionHistoryLimit" + StatefulSetFieldRunAsNonRoot = "runAsNonRoot" + StatefulSetFieldScale = "scale" + StatefulSetFieldSchedulerName = "schedulerName" + StatefulSetFieldServiceAccountName = "serviceAccountName" + StatefulSetFieldServiceName = "serviceName" + StatefulSetFieldStatus = "status" + StatefulSetFieldSubdomain = "subdomain" + StatefulSetFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + StatefulSetFieldTolerations = "tolerations" + StatefulSetFieldUid = "uid" + StatefulSetFieldUpdateStrategy = "updateStrategy" + StatefulSetFieldUuid = "uuid" + StatefulSetFieldVolumeClaimTemplates = "volumeClaimTemplates" + StatefulSetFieldVolumes = "volumes" + StatefulSetFieldWorkloadAnnotations = "workloadAnnotations" + StatefulSetFieldWorkloadLabels = "workloadLabels" ) type StatefulSet struct { types.Resource - APIVersion string `json:"apiVersion,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - CreationTimestamp string `json:"creationTimestamp,omitempty"` - DeletionTimestamp string `json:"deletionTimestamp,omitempty"` - Deploy *DeployParams `json:"deploy,omitempty"` - Kind string `json:"kind,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Name string `json:"name,omitempty"` - Namespace string `json:"namespace,omitempty"` - ServiceName string `json:"serviceName,omitempty"` - Status StatefulSetStatus `json:"status,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` - UID string `json:"uid,omitempty"` - UpdateStrategy StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` - VolumeClaimTemplates map[string]PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + PodManagementPolicy string `json:"podManagementPolicy,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + ServiceName string `json:"serviceName,omitempty"` + Status *StatefulSetStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + UpdateStrategy *StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` + Uuid string `json:"uuid,omitempty"` + VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` } type StatefulSetCollection struct { types.Collection diff --git a/client/workload/v1/zz_generated_stateful_set_spec.go b/client/workload/v1/zz_generated_stateful_set_spec.go index 918933b4..e2d8c80b 100644 --- a/client/workload/v1/zz_generated_stateful_set_spec.go +++ b/client/workload/v1/zz_generated_stateful_set_spec.go @@ -1,18 +1,74 @@ package client const ( - StatefulSetSpecType = "statefulSetSpec" - StatefulSetSpecFieldDeploy = "deploy" - StatefulSetSpecFieldServiceName = "serviceName" - StatefulSetSpecFieldTemplate = "template" - StatefulSetSpecFieldUpdateStrategy = "updateStrategy" - StatefulSetSpecFieldVolumeClaimTemplates = "volumeClaimTemplates" + StatefulSetSpecType = "statefulSetSpec" + StatefulSetSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + StatefulSetSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + StatefulSetSpecFieldBatchSize = "batchSize" + StatefulSetSpecFieldContainers = "containers" + StatefulSetSpecFieldDNSPolicy = "dnsPolicy" + StatefulSetSpecFieldDeploymentStrategy = "deploymentStrategy" + StatefulSetSpecFieldFsgid = "fsgid" + StatefulSetSpecFieldGids = "gids" + StatefulSetSpecFieldHostAliases = "hostAliases" + StatefulSetSpecFieldHostname = "hostname" + StatefulSetSpecFieldIPC = "ipc" + StatefulSetSpecFieldNet = "net" + StatefulSetSpecFieldNodeId = "nodeId" + StatefulSetSpecFieldObjectMeta = "metadata" + StatefulSetSpecFieldPID = "pid" + StatefulSetSpecFieldPodManagementPolicy = "podManagementPolicy" + StatefulSetSpecFieldPriority = "priority" + StatefulSetSpecFieldPriorityClassName = "priorityClassName" + StatefulSetSpecFieldPullSecrets = "pullSecrets" + StatefulSetSpecFieldRestart = "restart" + StatefulSetSpecFieldRevisionHistoryLimit = "revisionHistoryLimit" + StatefulSetSpecFieldRunAsNonRoot = "runAsNonRoot" + StatefulSetSpecFieldScale = "scale" + StatefulSetSpecFieldSchedulerName = "schedulerName" + StatefulSetSpecFieldServiceAccountName = "serviceAccountName" + StatefulSetSpecFieldServiceName = "serviceName" + StatefulSetSpecFieldSubdomain = "subdomain" + StatefulSetSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + StatefulSetSpecFieldTolerations = "tolerations" + StatefulSetSpecFieldUid = "uid" + StatefulSetSpecFieldUpdateStrategy = "updateStrategy" + StatefulSetSpecFieldVolumeClaimTemplates = "volumeClaimTemplates" + StatefulSetSpecFieldVolumes = "volumes" ) type StatefulSetSpec struct { - Deploy *DeployParams `json:"deploy,omitempty"` - ServiceName string `json:"serviceName,omitempty"` - Template PodTemplateSpec `json:"template,omitempty"` - UpdateStrategy StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` - VolumeClaimTemplates map[string]PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + PodManagementPolicy string `json:"podManagementPolicy,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + ServiceName string `json:"serviceName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + UpdateStrategy *StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` + VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` } diff --git a/client/workload/v1/zz_generated_stateful_set_status.go b/client/workload/v1/zz_generated_stateful_set_status.go index a1a24dc3..c3fd2a76 100644 --- a/client/workload/v1/zz_generated_stateful_set_status.go +++ b/client/workload/v1/zz_generated_stateful_set_status.go @@ -14,11 +14,11 @@ const ( type StatefulSetStatus struct { CollisionCount *int64 `json:"collisionCount,omitempty"` - CurrentReplicas int64 `json:"currentReplicas,omitempty"` + CurrentReplicas *int64 `json:"currentReplicas,omitempty"` CurrentRevision string `json:"currentRevision,omitempty"` - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - ReadyReplicas int64 `json:"readyReplicas,omitempty"` - Replicas int64 `json:"replicas,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ReadyReplicas *int64 `json:"readyReplicas,omitempty"` + Replicas *int64 `json:"replicas,omitempty"` UpdateRevision string `json:"updateRevision,omitempty"` - UpdatedReplicas int64 `json:"updatedReplicas,omitempty"` + UpdatedReplicas *int64 `json:"updatedReplicas,omitempty"` } diff --git a/client/workload/v1/zz_generated_status.go b/client/workload/v1/zz_generated_status.go index e1861b57..bd06240a 100644 --- a/client/workload/v1/zz_generated_status.go +++ b/client/workload/v1/zz_generated_status.go @@ -6,7 +6,7 @@ const ( StatusFieldCode = "code" StatusFieldDetails = "details" StatusFieldKind = "kind" - StatusFieldListMeta = "listMeta" + StatusFieldListMeta = "metadata" StatusFieldMessage = "message" StatusFieldReason = "reason" StatusFieldStatus = "status" @@ -14,10 +14,10 @@ const ( type Status struct { APIVersion string `json:"apiVersion,omitempty"` - Code int64 `json:"code,omitempty"` + Code *int64 `json:"code,omitempty"` Details *StatusDetails `json:"details,omitempty"` Kind string `json:"kind,omitempty"` - ListMeta ListMeta `json:"listMeta,omitempty"` + ListMeta *ListMeta `json:"metadata,omitempty"` Message string `json:"message,omitempty"` Reason string `json:"reason,omitempty"` Status string `json:"status,omitempty"` diff --git a/client/workload/v1/zz_generated_status_cause.go b/client/workload/v1/zz_generated_status_cause.go index c0818a1a..e2dcd46f 100644 --- a/client/workload/v1/zz_generated_status_cause.go +++ b/client/workload/v1/zz_generated_status_cause.go @@ -4,11 +4,11 @@ const ( StatusCauseType = "statusCause" StatusCauseFieldField = "field" StatusCauseFieldMessage = "message" - StatusCauseFieldType = "type" + StatusCauseFieldType = "reason" ) type StatusCause struct { Field string `json:"field,omitempty"` Message string `json:"message,omitempty"` - Type string `json:"type,omitempty"` + Type string `json:"reason,omitempty"` } diff --git a/client/workload/v1/zz_generated_status_details.go b/client/workload/v1/zz_generated_status_details.go index 78cdf859..8c68523c 100644 --- a/client/workload/v1/zz_generated_status_details.go +++ b/client/workload/v1/zz_generated_status_details.go @@ -15,6 +15,6 @@ type StatusDetails struct { Group string `json:"group,omitempty"` Kind string `json:"kind,omitempty"` Name string `json:"name,omitempty"` - RetryAfterSeconds int64 `json:"retryAfterSeconds,omitempty"` + RetryAfterSeconds *int64 `json:"retryAfterSeconds,omitempty"` UID string `json:"uid,omitempty"` } diff --git a/client/workload/v1/zz_generated_storage_osvolume_source.go b/client/workload/v1/zz_generated_storage_osvolume_source.go index d70962b8..f1fefb03 100644 --- a/client/workload/v1/zz_generated_storage_osvolume_source.go +++ b/client/workload/v1/zz_generated_storage_osvolume_source.go @@ -11,7 +11,7 @@ const ( type StorageOSVolumeSource struct { FSType string `json:"fsType,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SecretRef *LocalObjectReference `json:"secretRef,omitempty"` VolumeName string `json:"volumeName,omitempty"` VolumeNamespace string `json:"volumeNamespace,omitempty"` diff --git a/client/workload/v1/zz_generated_volume.go b/client/workload/v1/zz_generated_volume.go index 99a11a6d..ed080780 100644 --- a/client/workload/v1/zz_generated_volume.go +++ b/client/workload/v1/zz_generated_volume.go @@ -5,7 +5,7 @@ const ( VolumeFieldAWSElasticBlockStore = "awsElasticBlockStore" VolumeFieldAzureDisk = "azureDisk" VolumeFieldAzureFile = "azureFile" - VolumeFieldCephFS = "cephFS" + VolumeFieldCephFS = "cephfs" VolumeFieldCinder = "cinder" VolumeFieldConfigMap = "configMap" VolumeFieldDownwardAPI = "downwardAPI" @@ -28,7 +28,7 @@ const ( VolumeFieldRBD = "rbd" VolumeFieldScaleIO = "scaleIO" VolumeFieldSecret = "secret" - VolumeFieldStorageOS = "storageOS" + VolumeFieldStorageOS = "storageos" VolumeFieldVsphereVolume = "vsphereVolume" ) @@ -36,7 +36,7 @@ type Volume struct { AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty"` AzureDisk *AzureDiskVolumeSource `json:"azureDisk,omitempty"` AzureFile *AzureFileVolumeSource `json:"azureFile,omitempty"` - CephFS *CephFSVolumeSource `json:"cephFS,omitempty"` + CephFS *CephFSVolumeSource `json:"cephfs,omitempty"` Cinder *CinderVolumeSource `json:"cinder,omitempty"` ConfigMap *ConfigMapVolumeSource `json:"configMap,omitempty"` DownwardAPI *DownwardAPIVolumeSource `json:"downwardAPI,omitempty"` @@ -59,6 +59,6 @@ type Volume struct { RBD *RBDVolumeSource `json:"rbd,omitempty"` ScaleIO *ScaleIOVolumeSource `json:"scaleIO,omitempty"` Secret *SecretVolumeSource `json:"secret,omitempty"` - StorageOS *StorageOSVolumeSource `json:"storageOS,omitempty"` + StorageOS *StorageOSVolumeSource `json:"storageos,omitempty"` VsphereVolume *VsphereVirtualDiskVolumeSource `json:"vsphereVolume,omitempty"` } diff --git a/client/workload/v1/zz_generated_volume_mount.go b/client/workload/v1/zz_generated_volume_mount.go index dcc49f10..b9e7b51e 100644 --- a/client/workload/v1/zz_generated_volume_mount.go +++ b/client/workload/v1/zz_generated_volume_mount.go @@ -13,6 +13,6 @@ type VolumeMount struct { MountPath string `json:"mountPath,omitempty"` MountPropagation string `json:"mountPropagation,omitempty"` Name string `json:"name,omitempty"` - ReadOnly bool `json:"readOnly,omitempty"` + ReadOnly *bool `json:"readOnly,omitempty"` SubPath string `json:"subPath,omitempty"` } diff --git a/client/workload/v1/zz_generated_weighted_pod_affinity_term.go b/client/workload/v1/zz_generated_weighted_pod_affinity_term.go index 5b59ac17..57aa8893 100644 --- a/client/workload/v1/zz_generated_weighted_pod_affinity_term.go +++ b/client/workload/v1/zz_generated_weighted_pod_affinity_term.go @@ -7,6 +7,6 @@ const ( ) type WeightedPodAffinityTerm struct { - PodAffinityTerm PodAffinityTerm `json:"podAffinityTerm,omitempty"` - Weight int64 `json:"weight,omitempty"` + PodAffinityTerm *PodAffinityTerm `json:"podAffinityTerm,omitempty"` + Weight *int64 `json:"weight,omitempty"` } diff --git a/client/workload/v1/zz_generated_workload.go b/client/workload/v1/zz_generated_workload.go new file mode 100644 index 00000000..a67fef37 --- /dev/null +++ b/client/workload/v1/zz_generated_workload.go @@ -0,0 +1,155 @@ +package client + +import ( + "github.com/rancher/norman/types" +) + +const ( + WorkloadType = "workload" + WorkloadFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + WorkloadFieldAnnotations = "annotations" + WorkloadFieldAutomountServiceAccountToken = "automountServiceAccountToken" + WorkloadFieldBatchSize = "batchSize" + WorkloadFieldContainers = "containers" + WorkloadFieldCreated = "created" + WorkloadFieldDNSPolicy = "dnsPolicy" + WorkloadFieldDeploymentStrategy = "deploymentStrategy" + WorkloadFieldFsgid = "fsgid" + WorkloadFieldGids = "gids" + WorkloadFieldHostAliases = "hostAliases" + WorkloadFieldHostname = "hostname" + WorkloadFieldIPC = "ipc" + WorkloadFieldLabels = "labels" + WorkloadFieldName = "name" + WorkloadFieldNamespace = "namespace" + WorkloadFieldNet = "net" + WorkloadFieldNodeId = "nodeId" + WorkloadFieldOwnerReferences = "ownerReferences" + WorkloadFieldPID = "pid" + WorkloadFieldPriority = "priority" + WorkloadFieldPriorityClassName = "priorityClassName" + WorkloadFieldProjectID = "projectId" + WorkloadFieldPullSecrets = "pullSecrets" + WorkloadFieldRemoved = "removed" + WorkloadFieldResourcePath = "resourcePath" + WorkloadFieldRestart = "restart" + WorkloadFieldRunAsNonRoot = "runAsNonRoot" + WorkloadFieldScale = "scale" + WorkloadFieldSchedulerName = "schedulerName" + WorkloadFieldServiceAccountName = "serviceAccountName" + WorkloadFieldStatus = "status" + WorkloadFieldSubdomain = "subdomain" + WorkloadFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + WorkloadFieldTolerations = "tolerations" + WorkloadFieldUid = "uid" + WorkloadFieldUuid = "uuid" + WorkloadFieldVolumes = "volumes" + WorkloadFieldWorkloadAnnotations = "workloadAnnotations" + WorkloadFieldWorkloadLabels = "workloadLabels" +) + +type Workload struct { + types.Resource + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + Created string `json:"created,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + ProjectID string `json:"projectId,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Removed string `json:"removed,omitempty"` + ResourcePath string `json:"resourcePath,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Status *WorkloadStatus `json:"status,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Uuid string `json:"uuid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` + WorkloadAnnotations map[string]string `json:"workloadAnnotations,omitempty"` + WorkloadLabels map[string]string `json:"workloadLabels,omitempty"` +} +type WorkloadCollection struct { + types.Collection + Data []Workload `json:"data,omitempty"` + client *WorkloadClient +} + +type WorkloadClient struct { + apiClient *Client +} + +type WorkloadOperations interface { + List(opts *types.ListOpts) (*WorkloadCollection, error) + Create(opts *Workload) (*Workload, error) + Update(existing *Workload, updates interface{}) (*Workload, error) + ByID(id string) (*Workload, error) + Delete(container *Workload) error +} + +func newWorkloadClient(apiClient *Client) *WorkloadClient { + return &WorkloadClient{ + apiClient: apiClient, + } +} + +func (c *WorkloadClient) Create(container *Workload) (*Workload, error) { + resp := &Workload{} + err := c.apiClient.Ops.DoCreate(WorkloadType, container, resp) + return resp, err +} + +func (c *WorkloadClient) Update(existing *Workload, updates interface{}) (*Workload, error) { + resp := &Workload{} + err := c.apiClient.Ops.DoUpdate(WorkloadType, &existing.Resource, updates, resp) + return resp, err +} + +func (c *WorkloadClient) List(opts *types.ListOpts) (*WorkloadCollection, error) { + resp := &WorkloadCollection{} + err := c.apiClient.Ops.DoList(WorkloadType, opts, resp) + resp.client = c + return resp, err +} + +func (cc *WorkloadCollection) Next() (*WorkloadCollection, error) { + if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" { + resp := &WorkloadCollection{} + err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp) + resp.client = cc.client + return resp, err + } + return nil, nil +} + +func (c *WorkloadClient) ByID(id string) (*Workload, error) { + resp := &Workload{} + err := c.apiClient.Ops.DoByID(WorkloadType, id, resp) + return resp, err +} + +func (c *WorkloadClient) Delete(container *Workload) error { + return c.apiClient.Ops.DoResourceDelete(WorkloadType, &container.Resource) +} diff --git a/client/workload/v1/zz_generated_workload_spec.go b/client/workload/v1/zz_generated_workload_spec.go new file mode 100644 index 00000000..417923e8 --- /dev/null +++ b/client/workload/v1/zz_generated_workload_spec.go @@ -0,0 +1,64 @@ +package client + +const ( + WorkloadSpecType = "workloadSpec" + WorkloadSpecFieldActiveDeadlineSeconds = "activeDeadlineSeconds" + WorkloadSpecFieldAutomountServiceAccountToken = "automountServiceAccountToken" + WorkloadSpecFieldBatchSize = "batchSize" + WorkloadSpecFieldContainers = "containers" + WorkloadSpecFieldDNSPolicy = "dnsPolicy" + WorkloadSpecFieldDeploymentStrategy = "deploymentStrategy" + WorkloadSpecFieldFsgid = "fsgid" + WorkloadSpecFieldGids = "gids" + WorkloadSpecFieldHostAliases = "hostAliases" + WorkloadSpecFieldHostname = "hostname" + WorkloadSpecFieldIPC = "ipc" + WorkloadSpecFieldNet = "net" + WorkloadSpecFieldNodeId = "nodeId" + WorkloadSpecFieldObjectMeta = "metadata" + WorkloadSpecFieldPID = "pid" + WorkloadSpecFieldPriority = "priority" + WorkloadSpecFieldPriorityClassName = "priorityClassName" + WorkloadSpecFieldPullSecrets = "pullSecrets" + WorkloadSpecFieldRestart = "restart" + WorkloadSpecFieldRunAsNonRoot = "runAsNonRoot" + WorkloadSpecFieldScale = "scale" + WorkloadSpecFieldSchedulerName = "schedulerName" + WorkloadSpecFieldServiceAccountName = "serviceAccountName" + WorkloadSpecFieldSubdomain = "subdomain" + WorkloadSpecFieldTerminationGracePeriodSeconds = "terminationGracePeriodSeconds" + WorkloadSpecFieldTolerations = "tolerations" + WorkloadSpecFieldUid = "uid" + WorkloadSpecFieldVolumes = "volumes" +) + +type WorkloadSpec struct { + ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + BatchSize string `json:"batchSize,omitempty"` + Containers map[string]Container `json:"containers,omitempty"` + DNSPolicy string `json:"dnsPolicy,omitempty"` + DeploymentStrategy *DeployStrategy `json:"deploymentStrategy,omitempty"` + Fsgid *int64 `json:"fsgid,omitempty"` + Gids []int64 `json:"gids,omitempty"` + HostAliases map[string]HostAlias `json:"hostAliases,omitempty"` + Hostname string `json:"hostname,omitempty"` + IPC string `json:"ipc,omitempty"` + Net string `json:"net,omitempty"` + NodeId string `json:"nodeId,omitempty"` + ObjectMeta *ObjectMeta `json:"metadata,omitempty"` + PID string `json:"pid,omitempty"` + Priority *int64 `json:"priority,omitempty"` + PriorityClassName string `json:"priorityClassName,omitempty"` + PullSecrets []LocalObjectReference `json:"pullSecrets,omitempty"` + Restart string `json:"restart,omitempty"` + RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"` + Scale *int64 `json:"scale,omitempty"` + SchedulerName string `json:"schedulerName,omitempty"` + ServiceAccountName string `json:"serviceAccountName,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Tolerations []Toleration `json:"tolerations,omitempty"` + Uid *int64 `json:"uid,omitempty"` + Volumes map[string]Volume `json:"volumes,omitempty"` +} diff --git a/client/workload/v1/zz_generated_workload_status.go b/client/workload/v1/zz_generated_workload_status.go new file mode 100644 index 00000000..6b38669b --- /dev/null +++ b/client/workload/v1/zz_generated_workload_status.go @@ -0,0 +1,8 @@ +package client + +const ( + WorkloadStatusType = "workloadStatus" +) + +type WorkloadStatus struct { +}