fix: Deletes object with a legacy name to avoid mounting several ones… (#1383)

* fix: Deletes object with a legacy name to avoid mounting several ones under the same path

Signed-off-by: Anatolii Bazko <abazko@redhat.com>
pull/1385/head
Anatolii Bazko 2022-05-11 18:05:18 +03:00 committed by GitHub
parent f99391ec5e
commit 293956fea3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 8 deletions

View File

@ -75,7 +75,7 @@ metadata:
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
repository: https://github.com/eclipse-che/che-operator
support: Eclipse Foundation
name: eclipse-che-preview-openshift.v7.48.0-444.next
name: eclipse-che-preview-openshift.v7.48.0-445.next
namespace: placeholder
spec:
apiservicedefinitions: {}
@ -972,7 +972,7 @@ spec:
- name: RELATED_IMAGE_devfile_registry
value: quay.io/eclipse/che-devfile-registry:next
- name: RELATED_IMAGE_pvc_jobs
value: registry.access.redhat.com/ubi8-minimal:8.5-243.1651231653
value: registry.access.redhat.com/ubi8-minimal:8.6-751
- name: RELATED_IMAGE_postgres
value: quay.io/eclipse/che--centos--postgresql-96-centos7:9.6-b681d78125361519180a6ac05242c296f8906c11eab7e207b5ca9a89b6344392
- name: RELATED_IMAGE_postgres_13_3
@ -1278,4 +1278,4 @@ spec:
maturity: stable
provider:
name: Eclipse Foundation
version: 7.48.0-444.next
version: 7.48.0-445.next

View File

@ -72,7 +72,7 @@ spec:
- name: RELATED_IMAGE_che_tls_secrets_creation_job
value: quay.io/eclipse/che-tls-secret-creator:alpine-01a4c34
- name: RELATED_IMAGE_pvc_jobs
value: registry.access.redhat.com/ubi8-minimal:8.5-243.1651231653
value: registry.access.redhat.com/ubi8-minimal:8.6-751
- name: RELATED_IMAGE_postgres
value: quay.io/eclipse/che--centos--postgresql-96-centos7:9.6-b681d78125361519180a6ac05242c296f8906c11eab7e207b5ca9a89b6344392
- name: RELATED_IMAGE_postgres_13_3

View File

@ -226,7 +226,7 @@ func (r *CheUserNamespaceReconciler) Reconcile(ctx context.Context, req ctrl.Req
}
if err = r.reconcileTrustedCerts(ctx, deployContext, req.Name, checluster); err != nil {
logrus.Errorf("Failed to reconcile self-signed certificate into namespace '%s': %v", req.Name, err)
logrus.Errorf("Failed to reconcile trusted certificates into namespace '%s': %v", req.Name, err)
return ctrl.Result{}, err
}
@ -273,6 +273,10 @@ func findManagingCheCluster(key types.NamespacedName) *v2alpha1.CheCluster {
}
func (r *CheUserNamespaceReconciler) reconcileSelfSignedCert(ctx context.Context, deployContext *deploy.DeployContext, targetNs string, checluster *v2alpha1.CheCluster) error {
if err := deleteLegacyObject("server-cert", &corev1.Secret{}, targetNs, checluster, deployContext); err != nil {
return err
}
targetCertName := prefixedName("server-cert")
delSecret := func() error {
@ -323,10 +327,14 @@ func (r *CheUserNamespaceReconciler) reconcileSelfSignedCert(ctx context.Context
}
func (r *CheUserNamespaceReconciler) reconcileTrustedCerts(ctx context.Context, deployContext *deploy.DeployContext, targetNs string, checluster *v2alpha1.CheCluster) error {
if err := deleteLegacyObject("trusted-ca-certs", &corev1.ConfigMap{}, targetNs, checluster, deployContext); err != nil {
return err
}
targetConfigMapName := prefixedName("trusted-ca-certs")
delConfigMap := func() error {
_, err := deploy.Delete(deployContext, client.ObjectKey{Name: targetConfigMapName, Namespace: targetNs}, &corev1.Secret{})
_, err := deploy.Delete(deployContext, client.ObjectKey{Name: targetConfigMapName, Namespace: targetNs}, &corev1.ConfigMap{})
return err
}
@ -375,6 +383,10 @@ func addToFirst(first map[string]string, second map[string]string) map[string]st
}
func (r *CheUserNamespaceReconciler) reconcileProxySettings(ctx context.Context, targetNs string, checluster *v2alpha1.CheCluster, deployContext *deploy.DeployContext) error {
if err := deleteLegacyObject("proxy-settings", &corev1.ConfigMap{}, targetNs, checluster, deployContext); err != nil {
return err
}
proxyConfig, err := che.GetProxyConfiguration(deployContext)
if err != nil {
return err
@ -442,9 +454,13 @@ func (r *CheUserNamespaceReconciler) reconcileProxySettings(ctx context.Context,
}
func (r *CheUserNamespaceReconciler) reconcileGitTlsCertificate(ctx context.Context, targetNs string, checluster *v2alpha1.CheCluster, deployContext *deploy.DeployContext) error {
if err := deleteLegacyObject("git-tls-creds", &corev1.ConfigMap{}, targetNs, checluster, deployContext); err != nil {
return err
}
targetName := prefixedName("git-tls-creds")
delConfigMap := func() error {
_, err := deploy.Delete(deployContext, client.ObjectKey{Name: targetName, Namespace: targetNs}, &corev1.Secret{})
_, err := deploy.Delete(deployContext, client.ObjectKey{Name: targetName, Namespace: targetNs}, &corev1.ConfigMap{})
return err
}
@ -545,3 +561,29 @@ func (r *CheUserNamespaceReconciler) reconcileNodeSelectorAndTolerations(ctx con
func prefixedName(name string) string {
return "che-" + name
}
// Deletes object with a legacy name to avoid mounting several ones under the same path
// See https://github.com/eclipse/che/issues/21385
func deleteLegacyObject(name string, objectMeta client.Object, targetNs string, checluster *v2alpha1.CheCluster, deployContext *deploy.DeployContext) error {
legacyPrefixedName := checluster.Name + "-" + checluster.Namespace + "-" + name
key := client.ObjectKey{Name: legacyPrefixedName, Namespace: targetNs}
err := deployContext.ClusterAPI.Client.Get(context.TODO(), key, objectMeta)
if err != nil {
if errors.IsNotFound(err) {
return nil
}
return err
}
err = deployContext.ClusterAPI.Client.Delete(context.TODO(), objectMeta)
if err != nil {
if errors.IsNotFound(err) {
return nil
}
return err
}
logrus.Infof("Deleted legacy workspace object: %s name: %s, namespace: %s", deploy.GetObjectType(objectMeta), legacyPrefixedName, targetNs)
return nil
}

View File

@ -72,7 +72,7 @@ spec:
- name: RELATED_IMAGE_che_tls_secrets_creation_job
value: quay.io/eclipse/che-tls-secret-creator:alpine-01a4c34
- name: RELATED_IMAGE_pvc_jobs
value: registry.access.redhat.com/ubi8-minimal:8.5-243.1651231653
value: registry.access.redhat.com/ubi8-minimal:8.6-751
- name: RELATED_IMAGE_postgres
value: quay.io/eclipse/che--centos--postgresql-96-centos7:9.6-b681d78125361519180a6ac05242c296f8906c11eab7e207b5ca9a89b6344392
- name: RELATED_IMAGE_postgres_13_3