1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/packages/utility-features/kube-api/src/endpoints/deployment.api.ts
Jari Kolehmainen 0298b36a9f chore: kube-api lint fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2023-05-29 09:38:24 -04:00

46 lines
1.2 KiB
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import moment from "moment";
import type { DerivedKubeApiOptions, KubeApiDependencies, NamespacedResourceDescriptor } from "../kube-api";
import { KubeApi } from "../kube-api";
import { Deployment } from "@k8slens/kube-object";
export class DeploymentApi extends KubeApi<Deployment> {
constructor(deps: KubeApiDependencies, opts?: DerivedKubeApiOptions) {
super(deps, {
...(opts ?? {}),
objectConstructor: Deployment,
});
}
async getReplicas(params: NamespacedResourceDescriptor): Promise<number> {
const { status } = await this.getResourceScale(params);
return status.replicas;
}
scale(params: NamespacedResourceDescriptor, replicas: number) {
return this.scaleResource(params, { spec: { replicas } });
}
restart(params: NamespacedResourceDescriptor) {
return this.patch(
params,
{
spec: {
template: {
metadata: {
annotations: { "kubectl.kubernetes.io/restartedAt": moment.utc().format() },
},
},
},
},
"strategic",
);
}
}