Javatar81 / devjoy

2 stars 0 forks source link

Refactor discriminators to avoid unnecessary k8s api calls #71

Closed Javatar81 closed 5 months ago

Javatar81 commented 6 months ago

Current implementation:

public class GiteaAdminSecretDiscriminator implements ResourceDiscriminator<Secret, Gitea>{

    @Override
    public Optional<Secret> distinguish(Class<Secret> resource, Gitea primary, Context<Gitea> context) {
        return Optional.ofNullable(context.getClient().secrets().inNamespace(primary.getMetadata().getNamespace())
               .withName(GiteaAdminSecretDependentResource.getName(primary)).get());
    }
}

Future implementation similar to this:

public static class CM1ResourceDiscriminator
      extends ResourceIDMatcherDiscriminator<ConfigMap, OrderedManagedDependentCustomResource> {
    public CM1ResourceDiscriminator() {
      super(p -> new ResourceID(p.getMetadata().getName() + "1", p.getMetadata().getNamespace()));
    }
  }

We will only need to implement a mapper function of type Function<P, ResourceID> that maps the resource instance to an id. More infos on ResourceIDMatcherDiscriminator.