|
1 | | -import { CoreV1Api, KubeConfig, User as k8sUser, V1ObjectReference } from '@kubernetes/client-node' |
| 1 | +import { CoreV1Api, User as k8sUser, KubeConfig, V1ObjectReference } from '@kubernetes/client-node' |
2 | 2 | import Debug from 'debug' |
3 | 3 |
|
4 | 4 | import { getRegions, ObjectStorageKeyRegions } from '@linode/api-v4' |
@@ -707,6 +707,7 @@ export default class OtomiStack { |
707 | 707 |
|
708 | 708 | async createAplTeam(data: AplTeamSettingsRequest, deploy = true): Promise<AplTeamSettingsResponse> { |
709 | 709 | const teamName = data.metadata.name |
| 710 | + if (teamName.length < 3) throw new ValidationError('Team name must be at least 3 characters long') |
710 | 711 | if (teamName.length > 9) throw new ValidationError('Team name must not exceed 9 characters') |
711 | 712 |
|
712 | 713 | if (isEmpty(data.spec.password)) { |
@@ -977,6 +978,8 @@ export default class OtomiStack { |
977 | 978 | } |
978 | 979 |
|
979 | 980 | async createAplNetpol(teamId: string, data: AplNetpolRequest): Promise<AplNetpolResponse> { |
| 981 | + if (data.metadata.name.length < 2) |
| 982 | + throw new ValidationError('Network policy name must be at least 2 characters long') |
980 | 983 | try { |
981 | 984 | const netpol = this.repoService.getTeamConfigService(teamId).createNetpol(data) |
982 | 985 | await this.saveTeamConfigItem(netpol) |
@@ -1423,6 +1426,8 @@ export default class OtomiStack { |
1423 | 1426 |
|
1424 | 1427 | async createAplBuild(teamId: string, data: AplBuildRequest): Promise<AplBuildResponse> { |
1425 | 1428 | const buildName = `${data?.spec?.imageName}-${data?.spec?.tag}` |
| 1429 | + if (data.spec.secretName && data.spec.secretName.length < 2) |
| 1430 | + throw new ValidationError('Secret name must be at least 2 characters long') |
1426 | 1431 | if (buildName.length > 128) { |
1427 | 1432 | throw new HttpError( |
1428 | 1433 | 400, |
@@ -1873,6 +1878,9 @@ export default class OtomiStack { |
1873 | 1878 | } |
1874 | 1879 |
|
1875 | 1880 | async createAplService(teamId: string, data: AplServiceRequest): Promise<AplServiceResponse> { |
| 1881 | + if (data.metadata.name.length < 2) throw new ValidationError('Service name must be at least 2 characters long') |
| 1882 | + if (data.spec.cname?.tlsSecretName && data.spec.cname?.tlsSecretName.length < 2) |
| 1883 | + throw new ValidationError('Secret name must be at least 2 characters long') |
1876 | 1884 | try { |
1877 | 1885 | const service = this.repoService.getTeamConfigService(teamId).createService(data) |
1878 | 1886 | await this.saveTeamConfigItem(service) |
@@ -2206,6 +2214,7 @@ export default class OtomiStack { |
2206 | 2214 | } |
2207 | 2215 |
|
2208 | 2216 | async createAplSealedSecret(teamId: string, data: AplSecretRequest): Promise<AplSecretResponse> { |
| 2217 | + if (data.metadata.name.length < 2) throw new ValidationError('Secret name must be at least 2 characters long') |
2209 | 2218 | try { |
2210 | 2219 | const sealedSecret = this.repoService.getTeamConfigService(teamId).createSealedSecret(data) |
2211 | 2220 | await this.saveTeamSealedSecret(sealedSecret) |
|
0 commit comments