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:
@@ -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{})
|
||||
}
|
||||
|
@@ -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{},
|
||||
|
@@ -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 {
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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{
|
||||
|
@@ -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{},
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user