Skip to content

Commit

Permalink
fix: Update che-operator in a different namespace than eclipse-che (#…
Browse files Browse the repository at this point in the history
…2865)

Signed-off-by: Anatolii Bazko <abazko@redhat.com>
  • Loading branch information
tolusha committed Mar 29, 2024
1 parent 064e77e commit a3edb71
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
20 changes: 8 additions & 12 deletions src/api/kube-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -951,24 +951,20 @@ export class KubeClient {
}
}

async replaceDeployment(deployment: V1Deployment): Promise<void> {
// updating restartedAt to make sure that rollout will be restarted
let annotations = deployment.spec!.template!.metadata!.annotations
if (!annotations) {
annotations = {}
deployment.spec!.template!.metadata!.annotations = annotations
}
async replaceDeployment(name: string, deployment: V1Deployment, namespace: string): Promise<void> {
const k8sAppsApi = this.kubeConfig.makeApiClient(AppsV1Api)

annotations['kubectl.kubernetes.io/restartedAt'] = new Date().toISOString()
deployment.spec!.template!.metadata!.annotations = deployment.spec!.template!.metadata!.annotations || {}
deployment.spec!.template!.metadata!.annotations['kubectl.kubernetes.io/restartedAt'] = new Date().toISOString()
delete deployment.metadata?.namespace

const k8sAppsApi = this.kubeConfig.makeApiClient(AppsV1Api)
try {
await k8sAppsApi.replaceNamespacedDeployment(deployment.metadata!.name!, deployment.metadata!.namespace!, deployment)
await k8sAppsApi.replaceNamespacedDeployment(name, namespace, deployment)
} catch (e: any) {
if (e.response && e.response.body && e.response.body.message && e.response.body.message.toString().endsWith('field is immutable')) {
try {
await k8sAppsApi.deleteNamespacedDeployment(deployment.metadata!.name!, deployment.metadata!.namespace!)
await k8sAppsApi.createNamespacedDeployment(deployment.metadata!.namespace!, deployment)
await k8sAppsApi.deleteNamespacedDeployment(name, namespace)
await k8sAppsApi.createNamespacedDeployment(namespace, deployment)
} catch (e: any) {
throw this.wrapK8sClientError(e)
}
Expand Down
2 changes: 1 addition & 1 deletion src/tasks/installers/eclipse-che/eclipse-che-tasks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export namespace EclipseCheTasks {
EclipseChe.OPERATOR_DEPLOYMENT_NAME,
() => kubeHelper.isDeploymentExist(EclipseChe.OPERATOR_DEPLOYMENT_NAME, flags[CHE_NAMESPACE_FLAG]),
() => kubeHelper.createDeployment(deployment, flags[CHE_NAMESPACE_FLAG]),
() => kubeHelper.replaceDeployment(deployment))
() => kubeHelper.replaceDeployment(EclipseChe.OPERATOR_DEPLOYMENT_NAME, deployment, flags[CHE_NAMESPACE_FLAG]))
}

export function getCreateOrUpdateCrdTask(isCreateOnly: boolean): Listr.ListrTask<any> {
Expand Down

0 comments on commit a3edb71

Please sign in to comment.