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

Make namespace mapping automatic

This commit is contained in:
Darren Shepherd
2017-12-28 09:48:10 -07:00
parent 1123611749
commit 85ce5b5a37
6 changed files with 17 additions and 12 deletions

View File

@@ -104,7 +104,6 @@ func authzTypes(schemas *types.Schemas) *types.Schemas {
&m.Move{From: "subject/kind", To: "subjectKind"},
&m.Move{From: "subject/namespace", To: "subjectNamespace"},
&m.Drop{Field: "subject"},
&mapper.NamespaceIDMapper{},
).
AddMapperForType(&Version, v3.GlobalRoleBinding{},
&m.Move{From: "subject/name", To: "subjectName"},
@@ -156,7 +155,12 @@ func machineTypes(schemas *types.Schemas) *types.Schemas {
&m.Move{From: "nodeName", To: "name"}).
AddMapperForType(&Version, v3.MachineDriver{}).
AddMapperForType(&Version, v3.MachineTemplate{}, m.DisplayName{}).
MustImport(&Version, v3.Machine{}).
MustImportAndCustomize(&Version, v3.Machine{}, func(schema *types.Schema) {
schema.MustCustomizeField("name", func(f types.Field) types.Field {
f.Create = true
return f
})
}).
MustImport(&Version, v3.MachineDriver{}).
MustImport(&Version, v3.MachineTemplate{})
}

View File

@@ -282,9 +282,6 @@ func podTypes(schemas *types.Schemas) *types.Schemas {
AddMapperForType(&Version, v1.ResourceRequirements{},
mapper.PivotMapper{Plural: true},
).
AddMapperForType(&Version, v1.Pod{},
&mapper.NamespaceIDMapper{},
).
// Must import handlers before Container
MustImport(&Version, v1.Capabilities{}, struct {
Add []string `norman:"type=array[enum],options=AUDIT_CONTROL|AUDIT_WRITE|BLOCK_SUSPEND|CHOWN|DAC_OVERRIDE|DAC_READ_SEARCH|FOWNER|FSETID|IPC_LOCK|IPC_OWNER|KILL|LEASE|LINUX_IMMUTABLE|MAC_ADMIN|MAC_OVERRIDE|MKNOD|NET_ADMIN|NET_BIND_SERVICE|NET_BROADCAST|NET_RAW|SETFCAP|SETGID|SETPCAP|SETUID|SYSLOG|SYS_ADMIN|SYS_BOOT|SYS_CHROOT|SYS_MODULE|SYS_NICE|SYS_PACCT|SYS_PTRACE|SYS_RAWIO|SYS_RESOURCE|SYS_TIME|SYS_TTY_CONFIG|WAKE_ALARM"`
@@ -323,13 +320,11 @@ func serviceTypes(schemas *types.Schemas) *types.Schemas {
&m.LabelField{Field: "workloadId"},
&m.Drop{Field: "status"},
&m.Move{From: "serviceKind", To: "kind"},
&mapper.NamespaceIDMapper{},
&m.AnnotationField{Field: "targetWorkloadIds", Object: true},
&m.AnnotationField{Field: "targetServiceIds", Object: true},
).
AddMapperForType(&Version, v1.Endpoints{},
&EndpointAddressMapper{},
&mapper.NamespaceIDMapper{},
).
MustImport(&Version, v1.Service{}, projectOverride{}, struct {
WorkloadID string `json:"workloadId" norman:"type=reference[workload]"`
@@ -351,7 +346,6 @@ func ingressTypes(schemas *types.Schemas) *types.Schemas {
&m.Embed{Field: "backend"},
).
AddMapperForType(&Version, v1beta1.Ingress{},
&mapper.NamespaceIDMapper{},
&m.Move{From: "backend", To: "defaultBackend"},
).
AddMapperForType(&Version, v1beta1.IngressTLS{},

View File

@@ -69,7 +69,6 @@ type ServiceAccountToken struct {
AccountUID string `json:"accountUid"`
Token string `json:"token" norman:"writeOnly"`
CACRT string `json:"caCrt"`
NamespaceID string `json:"namespaceId" norman:"type=reference[namespace]"`
}
type DockerCredential struct {

View File

@@ -10,9 +10,17 @@ func Schemas(version *types.APIVersion) *types.Schemas {
schemas := factory.Schemas(version)
baseFunc := schemas.DefaultMappers
schemas.DefaultMappers = func() []types.Mapper {
return append([]types.Mapper{
mapper.Status{},
mappers := append([]types.Mapper{
&mapper.Status{},
}, baseFunc()...)
mappers = append(mappers, &m.Scope{
If: types.NamespaceScope,
Mappers: []types.Mapper{
&mapper.NamespaceIDMapper{},
},
})
return mappers
}
}
return schemas
}

View File

@@ -28,6 +28,7 @@ func (n *NamespaceIDMapper) ModifySchema(schema *types.Schema, schemas *types.Sc
}
field.Type = "reference[namespace]"
field.Required = true
schema.ResourceFields["namespace"] = field
n.Move = &mapper.Move{

View File

@@ -12,6 +12,5 @@ func NewWorkloadTypeMapper() types.Mapper {
&m.Move{From: "metadata/labels", To: "labels", NoDeleteFromField: true},
&m.Move{From: "metadata/annotations", To: "annotations", NoDeleteFromField: true},
&m.Drop{Field: "metadata"},
&NamespaceIDMapper{},
}
}