22 lines
		
	
	
		
			695 B
		
	
	
	
		
			TypeScript
		
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			695 B
		
	
	
	
		
			TypeScript
		
	
	
|  | import { CoreV1Api } from '@kubernetes/client-node'; | ||
|  | import * as k8s from '@kubernetes/client-node'; | ||
|  | 
 | ||
|  | class KubernetesServiceAccount { | ||
|  |   static async createServiceAccount(serviceAccountName: string, namespace: string, kubeClient: CoreV1Api) { | ||
|  |     const serviceAccount = new k8s.V1ServiceAccount(); | ||
|  |     serviceAccount.apiVersion = 'v1'; | ||
|  |     serviceAccount.kind = 'ServiceAccount'; | ||
|  |     serviceAccount.metadata = { | ||
|  |       name: serviceAccountName, | ||
|  |     }; | ||
|  |     serviceAccount.automountServiceAccountToken = false; | ||
|  |     try { | ||
|  |       await kubeClient.createNamespacedServiceAccount(namespace, serviceAccount); | ||
|  |     } catch (error) { | ||
|  |       throw error; | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | export default KubernetesServiceAccount; |