EntityUserOperator extends AbstractModel { public RoleBinding generateRoleBinding(String namespace, String watchedNamespace) { Subject ks = new SubjectBuilder() .withKind("ServiceAccount") .withName(EntityOperator.entityOperatorServiceAccountName(cluster)) .withNamespace(namespace) .build(); RoleRef roleRef = new RoleRefBuilder() .withName(EntityOperator.EO_CLUSTER_ROLE_NAME) .withApiGroup("rbac.authorization.k8s.io") .withKind("ClusterRole") .build(); RoleBinding rb = new RoleBindingBuilder() .withNewMetadata() .withName(roleBindingName(cluster)) .withNamespace(watchedNamespace) .withOwnerReferences(createOwnerReference()) .withLabels(labels.toMap()) .endMetadata() .withRoleRef(roleRef) .withSubjects(singletonList(ks)) .build(); return rb; } protected  EntityUserOperator(HasMetadata resource); void setWatchedNamespace(String watchedNamespace); String getWatchedNamespace(); void setReconciliationIntervalMs(long reconciliationIntervalMs); long getReconciliationIntervalMs(); void setClientsCaValidityDays(int clientsCaValidityDays); long getClientsCaValidityDays(); void setClientsCaRenewalDays(int clientsCaRenewalDays); long getClientsCaRenewalDays(); void setZookeeperSessionTimeoutMs(long zookeeperSessionTimeoutMs); long getZookeeperSessionTimeoutMs(); void setZookeeperConnect(String zookeeperConnect); String getZookeeperConnect(); void setKafkaBootstrapServers(String kafkaBootstrapServers); String getKafkaBootstrapServers(); static String userOperatorName(String cluster); static String metricAndLogConfigsName(String cluster); static String roleBindingName(String cluster); @Override String getAncillaryConfigMapKeyLogConfig(); static EntityUserOperator fromCrd(Kafka kafkaAssembly); List<Volume> getVolumes(); RoleBinding generateRoleBinding(String namespace, String watchedNamespace); void setContainerEnvVars(List<ContainerEnvVar> envVars); void setContainerSecurityContext(SecurityContext securityContext); @Override String createLog4jProperties(OrderedProperties properties); static final String ENV_VAR_RESOURCE_LABELS; static final String ENV_VAR_KAFKA_BOOTSTRAP_SERVERS; static final String ENV_VAR_ZOOKEEPER_CONNECT; static final String ENV_VAR_WATCHED_NAMESPACE; static final String ENV_VAR_FULL_RECONCILIATION_INTERVAL_MS; static final String ENV_VAR_ZOOKEEPER_SESSION_TIMEOUT_MS; static final String ENV_VAR_CLIENTS_CA_CERT_SECRET_NAME; static final String ENV_VAR_CLIENTS_CA_KEY_SECRET_NAME; static final String ENV_VAR_CLIENTS_CA_NAMESPACE; static final String ENV_VAR_CLIENTS_CA_VALIDITY; static final String ENV_VAR_CLIENTS_CA_RENEWAL; static final String ENV_VAR_CLUSTER_CA_CERT_SECRET_NAME; static final String ENV_VAR_EO_KEY_SECRET_NAME; static final Probe DEFAULT_HEALTHCHECK_OPTIONS; }
@Test public void testRoleBinding() { RoleBinding binding = entityUserOperator.generateRoleBinding(namespace, uoWatchedNamespace); assertThat(binding.getSubjects().get(0).getNamespace(), is(namespace)); assertThat(binding.getMetadata().getNamespace(), is(uoWatchedNamespace)); }