mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00
disable aws pipe for now
This commit is contained in:
parent
613d7cc1c1
commit
4128a154f6
BIN
dist/index.js
generated
vendored
BIN
dist/index.js
generated
vendored
Binary file not shown.
BIN
dist/index.js.map
generated
vendored
BIN
dist/index.js.map
generated
vendored
Binary file not shown.
@ -15,6 +15,7 @@ import CloudRunner from '../../cloud-runner';
|
|||||||
import { ProviderResource } from '../provider-resource';
|
import { ProviderResource } from '../provider-resource';
|
||||||
import { ProviderWorkflow } from '../provider-workflow';
|
import { ProviderWorkflow } from '../provider-workflow';
|
||||||
import { RemoteClientLogger } from '../../remote-client/remote-client-logger';
|
import { RemoteClientLogger } from '../../remote-client/remote-client-logger';
|
||||||
|
import { KubernetesRole } from './kubernetes-role';
|
||||||
|
|
||||||
class Kubernetes implements ProviderInterface {
|
class Kubernetes implements ProviderInterface {
|
||||||
public static Instance: Kubernetes;
|
public static Instance: Kubernetes;
|
||||||
@ -244,6 +245,7 @@ class Kubernetes implements ProviderInterface {
|
|||||||
this.containerName,
|
this.containerName,
|
||||||
);
|
);
|
||||||
await new Promise((promise) => setTimeout(promise, 15000));
|
await new Promise((promise) => setTimeout(promise, 15000));
|
||||||
|
await KubernetesRole.createRole(this.serviceAccountName, this.namespace);
|
||||||
const result = await this.kubeClientBatch.createNamespacedJob(this.namespace, jobSpec);
|
const result = await this.kubeClientBatch.createNamespacedJob(this.namespace, jobSpec);
|
||||||
CloudRunnerLogger.log(`Build job created`);
|
CloudRunnerLogger.log(`Build job created`);
|
||||||
await new Promise((promise) => setTimeout(promise, 5000));
|
await new Promise((promise) => setTimeout(promise, 5000));
|
||||||
@ -267,6 +269,7 @@ class Kubernetes implements ProviderInterface {
|
|||||||
try {
|
try {
|
||||||
await this.kubeClientBatch.deleteNamespacedJob(this.jobName, this.namespace);
|
await this.kubeClientBatch.deleteNamespacedJob(this.jobName, this.namespace);
|
||||||
await this.kubeClient.deleteNamespacedPod(this.podName, this.namespace);
|
await this.kubeClient.deleteNamespacedPod(this.podName, this.namespace);
|
||||||
|
await KubernetesRole.deleteRole(this.serviceAccountName, this.namespace);
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
CloudRunnerLogger.log(`Failed to cleanup`);
|
CloudRunnerLogger.log(`Failed to cleanup`);
|
||||||
if (error.response.body.reason !== `NotFound`) {
|
if (error.response.body.reason !== `NotFound`) {
|
||||||
|
56
src/model/cloud-runner/providers/k8s/kubernetes-role.ts
Normal file
56
src/model/cloud-runner/providers/k8s/kubernetes-role.ts
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import { RbacAuthorizationV1Api } from '@kubernetes/client-node';
|
||||||
|
|
||||||
|
class KubernetesRole {
|
||||||
|
static async createRole(serviceAccountName: string, namespace: string) {
|
||||||
|
const rbac = new RbacAuthorizationV1Api();
|
||||||
|
|
||||||
|
// create admin kubernetes role and role binding
|
||||||
|
const roleBinding = {
|
||||||
|
apiVersion: 'rbac.authorization.k8s.io/v1',
|
||||||
|
kind: 'RoleBinding',
|
||||||
|
metadata: {
|
||||||
|
name: `${serviceAccountName}-admin`,
|
||||||
|
namespace,
|
||||||
|
},
|
||||||
|
subjects: [
|
||||||
|
{
|
||||||
|
kind: 'ServiceAccount',
|
||||||
|
name: serviceAccountName,
|
||||||
|
namespace,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
roleRef: {
|
||||||
|
apiGroup: 'rbac.authorization.k8s.io',
|
||||||
|
kind: 'Role',
|
||||||
|
name: `${serviceAccountName}-admin`,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const role = {
|
||||||
|
apiVersion: 'rbac.authorization.k8s.io/v1',
|
||||||
|
kind: 'Role',
|
||||||
|
metadata: {
|
||||||
|
name: `${serviceAccountName}-admin`,
|
||||||
|
namespace,
|
||||||
|
},
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
apiGroups: ['*'],
|
||||||
|
resources: ['*'],
|
||||||
|
verbs: ['*'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
const roleBindingResponse = await rbac.createNamespacedRoleBinding(namespace, roleBinding);
|
||||||
|
const roleResponse = await rbac.createNamespacedRole(namespace, role);
|
||||||
|
|
||||||
|
return { roleBindingResponse, roleResponse };
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async deleteRole(serviceAccountName: string, namespace: string) {
|
||||||
|
const rbac = new RbacAuthorizationV1Api();
|
||||||
|
await rbac.deleteNamespacedRoleBinding(`${serviceAccountName}-admin`, namespace);
|
||||||
|
await rbac.deleteNamespacedRole(`${serviceAccountName}-admin`, namespace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export { KubernetesRole };
|
Loading…
Reference in New Issue
Block a user