in lib/teams/index.ts [184:221]
protected setupNamespace(clusterInfo: ClusterInfo) {
const props = this.teamProps;
const namespaceName = props.namespace!;
const teamManifestDir = props.teamManifestDir;
this.namespaceManifest = new KubernetesManifest(clusterInfo.cluster.stack, props.name, {
cluster: clusterInfo.cluster,
manifest: [{
apiVersion: 'v1',
kind: 'Namespace',
metadata: {
name: namespaceName,
annotations: props.namespaceAnnotations
}
}],
overwrite: true,
prune: true
});
if (props.namespaceHardLimits) {
this.setupNamespacePolicies(clusterInfo, namespaceName);
}
const defaultRoles = new DefaultTeamRoles().createManifest(namespaceName); //TODO: add support for custom RBAC
const rbacManifest = new KubernetesManifest(clusterInfo.cluster.stack, namespaceName + "-rbac", {
cluster: clusterInfo.cluster,
manifest: defaultRoles,
overwrite: true,
prune: true
});
rbacManifest.node.addDependency(this.namespaceManifest);
if (teamManifestDir){
applyYamlFromDir(teamManifestDir, clusterInfo.cluster, this.namespaceManifest);
}
}