Java源码示例:io.fabric8.kubernetes.api.model.Event
示例1
protected void events(Pod pod) {
try {
Map<String, String> fields = new HashMap<>();
fields.put("involvedObject.uid", pod.getMetadata().getUid());
fields.put("involvedObject.name", pod.getMetadata().getName());
fields.put("involvedObject.namespace", pod.getMetadata().getNamespace());
EventList eventList = client.events().inNamespace(pod.getMetadata().getNamespace()).withFields(fields).list();
if (eventList == null) {
return;
}
logger.warning("Events of pod: [" + pod.getMetadata().getName() + "]");
for (Event event : eventList.getItems()) {
logger.info(String.format("%s\t\t%s", event.getReason(), event.getMessage()));
}
} catch (Throwable t) {
logger.error("Failed to read events, due to:" + t.getMessage());
} finally {
logger.warning("\t---");
}
}
示例2
private static ArrayList<KubernetesPodEvent> getAllEventsForPod(Pod pod, KubernetesClient client) {
ArrayList<KubernetesPodEvent> events = new ArrayList<>();
for (Event event : client.events().inAnyNamespace().list().getItems()) {
if (event.getInvolvedObject().getKind().equals("Pod") && event.getInvolvedObject().getName().equals(pod.getMetadata().getName())) {
KubernetesPodEvent podEvent = new KubernetesPodEvent(event.getFirstTimestamp(),
event.getLastTimestamp(),
event.getCount(),
event.getInvolvedObject().getFieldPath(),
event.getType(),
event.getReason(),
event.getMessage());
events.add(podEvent);
}
}
return events;
}
示例3
protected void waitForEvent(KafkaTopic kafkaTopic, String expectedMessage, TopicOperator.EventType expectedType) throws InterruptedException, ExecutionException, TimeoutException {
waitFor(() -> {
List<Event> items = kubeClient.events().inNamespace(NAMESPACE).withLabels(labels.labels()).list().getItems();
List<Event> filtered = items.stream().
filter(evt -> !preExistingEvents.contains(evt.getMetadata().getUid())
&& "KafkaTopic".equals(evt.getInvolvedObject().getKind())
&& kafkaTopic.getMetadata().getName().equals(evt.getInvolvedObject().getName())).
collect(Collectors.toList());
LOGGER.debug("Waiting for events: {}", filtered.stream().map(evt -> evt.getMessage()).collect(Collectors.toList()));
return filtered.stream().anyMatch(event ->
Pattern.matches(expectedMessage, event.getMessage()) &&
Objects.equals(expectedType.name, event.getType()) &&
event.getInvolvedObject() != null &&
event.getLastTimestamp() != null &&
Objects.equals("KafkaTopic", event.getInvolvedObject().getKind()) &&
Objects.equals(kafkaTopic.getMetadata().getName(), event.getInvolvedObject().getName()));
}, "Expected an error event");
}
示例4
@Override
@SuppressWarnings("unchecked")
public boolean matches(Object actualValue) {
List<String> actualReasons = ((List<Event>) actualValue).stream()
.map(Event::getReason)
.collect(Collectors.toList());
List<String> expectedReasons = Arrays.stream(eventReasons)
.map(Enum::name)
.collect(Collectors.toList());
for (String actualReason : actualReasons) {
if (expectedReasons.contains(actualReason)) {
return true;
}
}
return false;
}
示例5
@Override
public Future<Void> createEvent(Event event) {
Promise<Void> handler = Promise.promise();
events.add(event);
handler.handle(Future.succeededFuture());
return handler.future();
}
示例6
public void assertContainsEvent(VertxTestContext context, Predicate<Event> test) {
for (Event event : events) {
if (test.test(event)) {
return;
}
}
context.failNow(new Throwable("Missing event"));
}
示例7
@Override
@SuppressWarnings("unchecked")
public boolean matches(Object actualValue) {
List<String> actualReasons = ((List<Event>) actualValue).stream()
.map(Event::getReason)
.collect(Collectors.toList());
List<String> expectedReasons = Arrays.stream(eventReasons)
.map(Enum::name)
.collect(Collectors.toList());
return actualReasons.containsAll(expectedReasons);
}
示例8
@Override
@SuppressWarnings("unchecked")
public void describeMismatch(Object item, Description description) {
describeTo(description);
description.appendValueList(" but actual event reasons were {", ", ", "}.",
((List<Event>) item).stream().map(evt -> {
String objRef = "";
if (evt.getInvolvedObject() != null) {
objRef = " involved object: " + evt.getInvolvedObject().getKind() + "/" + evt.getInvolvedObject().getName();
}
return evt.getReason() + " (" + evt.getType() + " " + evt.getMessage() + objRef + ")\n";
})
.collect(Collectors.toList()));
}
示例9
/**
* Creates and returns {@link Watch} that watches for 'WaitForFirstConsumer' events on given PVC.
*/
private Watch pvcIsWaitingForConsumerWatcher(
CompletableFuture<PersistentVolumeClaim> future, PersistentVolumeClaim actualPvc)
throws InfrastructureException {
return clientFactory
.create(workspaceId)
.events()
.inNamespace(namespace)
.withField(PVC_EVENT_REASON_FIELD_KEY, PVC_EVENT_WAIT_CONSUMER_REASON)
.withField(PVC_EVENT_UID_FIELD_KEY, actualPvc.getMetadata().getUid())
.watch(
new Watcher<Event>() {
@Override
public void eventReceived(Action action, Event resource) {
LOG.debug(
"PVC '"
+ actualPvc.getMetadata().getName()
+ "' is waiting for first consumer. Don't wait to bound to avoid deadlock.");
future.complete(actualPvc);
}
@Override
public void onClose(KubernetesClientException cause) {
safelyFinishFutureOnClose(cause, future, actualPvc.getMetadata().getName());
}
});
}
示例10
@Test
public void shouldCallHandlerForEventsOnPods() throws Exception {
// Given
when(objectReference.getKind()).thenReturn(POD_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(podEventHandler).handle(any());
}
示例11
@Test
public void shouldCallHandlerForEventsOnReplicaSets() throws Exception {
// Given
when(objectReference.getKind()).thenReturn(REPLICASET_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(podEventHandler).handle(any());
}
示例12
@Test
public void shouldCallHandlerForEventsOnDeployments() throws Exception {
// Given
when(objectReference.getKind()).thenReturn(DEPLOYMENT_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(podEventHandler).handle(any());
}
示例13
@Test
public void shouldFallbackToFirstTimeStampIfLastTimeStampIsNull() throws InfrastructureException {
// Given
when(objectReference.getKind()).thenReturn(POD_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
Event event = mock(Event.class);
when(event.getInvolvedObject()).thenReturn(objectReference);
when(event.getMetadata()).thenReturn(new ObjectMeta());
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 1);
Date nextYear = cal.getTime();
when(event.getFirstTimestamp()).thenReturn(PodEvents.convertDateToEventTimestamp(nextYear));
when(event.getLastTimestamp()).thenReturn(null);
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(event, times(1)).getLastTimestamp();
verify(event, times(1)).getFirstTimestamp();
ArgumentCaptor<PodEvent> captor = ArgumentCaptor.forClass(PodEvent.class);
verify(podEventHandler).handle(captor.capture());
PodEvent podEvent = captor.getValue();
assertEquals(podEvent.getLastTimestamp(), PodEvents.convertDateToEventTimestamp(nextYear));
}
示例14
@Test
public void shouldUseLastTimestampIfAvailable() throws InfrastructureException {
// Given
when(objectReference.getKind()).thenReturn(POD_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
Event event = mock(Event.class);
when(event.getInvolvedObject()).thenReturn(objectReference);
when(event.getMetadata()).thenReturn(new ObjectMeta());
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 2);
Date nextYear = cal.getTime();
when(event.getLastTimestamp()).thenReturn(PodEvents.convertDateToEventTimestamp(nextYear));
when(event.getFirstTimestamp()).thenReturn(PodEvents.convertDateToEventTimestamp(new Date()));
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(event, times(1)).getLastTimestamp();
verify(event, never()).getFirstTimestamp();
ArgumentCaptor<PodEvent> captor = ArgumentCaptor.forClass(PodEvent.class);
verify(podEventHandler).handle(captor.capture());
PodEvent podEvent = captor.getValue();
assertEquals(podEvent.getLastTimestamp(), PodEvents.convertDateToEventTimestamp(nextYear));
}
示例15
@Test
public void shouldHandleEventWithEmptyLastTimestampAndFirstTimestamp() throws Exception {
// Given
when(objectReference.getKind()).thenReturn(POD_OBJECT_KIND);
kubernetesDeployments.watchEvents(podEventHandler);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, -1);
Date minuteAgo = cal.getTime();
Field f = KubernetesDeployments.class.getDeclaredField("watcherInitializationDate");
f.setAccessible(true);
f.set(kubernetesDeployments, minuteAgo);
verify(eventNamespaceMixedOperation).watch(eventWatcherCaptor.capture());
Watcher<Event> watcher = eventWatcherCaptor.getValue();
Event event = mock(Event.class);
when(event.getInvolvedObject()).thenReturn(objectReference);
when(event.getMetadata()).thenReturn(new ObjectMeta());
when(event.getLastTimestamp()).thenReturn(null);
when(event.getFirstTimestamp()).thenReturn(null);
// When
watcher.eventReceived(Watcher.Action.ADDED, event);
// Then
verify(event, times(1)).getLastTimestamp();
verify(event, times(1)).getFirstTimestamp();
ArgumentCaptor<PodEvent> captor = ArgumentCaptor.forClass(PodEvent.class);
verify(podEventHandler).handle(captor.capture());
PodEvent podEvent = captor.getValue();
assertNotNull(podEvent.getLastTimestamp());
}
示例16
@Exported
public List<Event> getPodEvents() throws KubernetesAuthException, IOException {
if(!Jenkins.get().hasPermission(Jenkins.ADMINISTER)) {
LOGGER.log(Level.FINE, " Computer {0} getPodEvents, lack of admin permission, returning empty list", this);
return Collections.emptyList();
}
KubernetesSlave slave = getNode();
if(slave != null) {
KubernetesCloud cloud = slave.getKubernetesCloud();
KubernetesClient client = cloud.connect();
String namespace = StringUtils.defaultIfBlank(slave.getNamespace(), client.getNamespace());
Pod pod = client.pods().inNamespace(namespace).withName(getName()).get();
if(pod != null) {
ObjectMeta podMeta = pod.getMetadata();
String podNamespace = podMeta.getNamespace();
Map<String, String> fields = new HashMap<>();
fields.put("involvedObject.uid", podMeta.getUid());
fields.put("involvedObject.name", podMeta.getName());
fields.put("involvedObject.namespace", podNamespace);
EventList eventList = client.events().inNamespace(podNamespace).withFields(fields).list();
if(eventList != null) {
return eventList.getItems();
}
}
}
return Collections.emptyList();
}
示例17
@Override
public void eventReceived(Action action, Event event) {
PrintStream logger = listener.getLogger();
// Messages can have multiple lines
String[] lines = event.getMessage().split("\n");
for (String line : lines) {
logger.printf("[%s][%s/%s][%s] %s%n", event.getType(), event.getInvolvedObject().getNamespace(), event.getInvolvedObject().getName(), event.getReason(), line);
}
}
示例18
public List<Event> listEvents() {
return client.events().inNamespace(getNamespace()).list().getItems();
}
示例19
public List<Event> listEvents(String resourceType, String resourceName) {
return client.events().inNamespace(getNamespace()).list().getItems().stream()
.filter(event -> event.getInvolvedObject().getKind().equals(resourceType))
.filter(event -> event.getInvolvedObject().getName().equals(resourceName))
.collect(Collectors.toList());
}
示例20
public List<Event> listEvents(String resourceUid) {
return listEvents().stream()
.filter(event -> event.getInvolvedObject().getUid().equals(resourceUid))
.collect(Collectors.toList());
}
示例21
@Override
@SuppressWarnings("unchecked")
public boolean matches(Object actualValue) {
return !filtered((List<Event>) actualValue).findFirst().isPresent();
}
示例22
private Stream<Event> filtered(List<Event> actualValue) {
return actualValue.stream().filter(evt -> prohibitedEvents.contains(evt.getReason()));
}
示例23
@Test
@Tag(LOADBALANCER_SUPPORTED)
void testRackAware() {
String rackKey = "rack-key";
KafkaResource.kafkaEphemeral(CLUSTER_NAME, 1, 1)
.editSpec()
.editKafka()
.withNewRack()
.withTopologyKey(rackKey)
.endRack()
.editListeners()
.withNewKafkaListenerExternalLoadBalancer()
.withTls(false)
.endKafkaListenerExternalLoadBalancer()
.endListeners()
.endKafka()
.endSpec().done();
Affinity kafkaPodSpecAffinity = kubeClient().getStatefulSet(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME)).getSpec().getTemplate().getSpec().getAffinity();
NodeSelectorRequirement kafkaPodNodeSelectorRequirement = kafkaPodSpecAffinity.getNodeAffinity()
.getRequiredDuringSchedulingIgnoredDuringExecution().getNodeSelectorTerms().get(0).getMatchExpressions().get(0);
assertThat(kafkaPodNodeSelectorRequirement.getKey(), is(rackKey));
assertThat(kafkaPodNodeSelectorRequirement.getOperator(), is("Exists"));
PodAffinityTerm kafkaPodAffinityTerm = kafkaPodSpecAffinity.getPodAntiAffinity().getPreferredDuringSchedulingIgnoredDuringExecution().get(0).getPodAffinityTerm();
assertThat(kafkaPodAffinityTerm.getTopologyKey(), is(rackKey));
assertThat(kafkaPodAffinityTerm.getLabelSelector().getMatchLabels(), hasEntry("strimzi.io/cluster", CLUSTER_NAME));
assertThat(kafkaPodAffinityTerm.getLabelSelector().getMatchLabels(), hasEntry("strimzi.io/name", KafkaResources.kafkaStatefulSetName(CLUSTER_NAME)));
String rackId = cmdKubeClient().execInPod(KafkaResources.kafkaPodName(CLUSTER_NAME, 0), "/bin/bash", "-c", "cat /opt/kafka/init/rack.id").out();
assertThat(rackId.trim(), is("zone"));
String brokerRack = cmdKubeClient().execInPod(KafkaResources.kafkaPodName(CLUSTER_NAME, 0), "/bin/bash", "-c", "cat /tmp/strimzi.properties | grep broker.rack").out();
assertThat(brokerRack.contains("broker.rack=zone"), is(true));
String uid = kubeClient().getPodUid(KafkaResources.kafkaPodName(CLUSTER_NAME, 0));
List<Event> events = kubeClient().listEvents(uid);
assertThat(events, hasAllOfReasons(Scheduled, Pulled, Created, Started));
BasicExternalKafkaClient basicExternalKafkaClient = new BasicExternalKafkaClient.Builder()
.withTopicName(TOPIC_NAME)
.withNamespaceName(NAMESPACE)
.withClusterName(CLUSTER_NAME)
.withMessageCount(MESSAGE_COUNT)
.withConsumerGroupName(CONSUMER_GROUP_NAME + "-" + rng.nextInt(Integer.MAX_VALUE))
.build();
basicExternalKafkaClient.verifyProducedAndConsumedMessages(
basicExternalKafkaClient.sendMessagesPlain(),
basicExternalKafkaClient.receiveMessagesPlain()
);
}
示例24
@Test
void testKafkaRollsWhenTopicIsUnderReplicated() {
String topicName = KafkaTopicUtils.generateRandomNameOfTopic();
timeMeasuringSystem.setOperationID(timeMeasuringSystem.startTimeMeasuring(Operation.CLUSTER_RECOVERY));
KafkaResource.kafkaPersistent(CLUSTER_NAME, 4)
.editSpec()
.editKafka()
.addToConfig("auto.create.topics.enable", "false")
.endKafka()
.endSpec()
.done();
LOGGER.info("Running kafkaScaleUpScaleDown {}", CLUSTER_NAME);
final int initialReplicas = kubeClient().getStatefulSet(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME)).getStatus().getReplicas();
assertEquals(4, initialReplicas);
Map<String, String> kafkaPods = StatefulSetUtils.ssSnapshot(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME));
KafkaTopicResource.topic(CLUSTER_NAME, topicName, 4, 4, 4).done();
//Test that the new pod does not have errors or failures in events
String uid = kubeClient().getPodUid(KafkaResources.kafkaPodName(CLUSTER_NAME, 3));
List<Event> events = kubeClient().listEvents(uid);
assertThat(events, hasAllOfReasons(Scheduled, Pulled, Created, Started));
//Test that CO doesn't have any exceptions in log
timeMeasuringSystem.stopOperation(timeMeasuringSystem.getOperationID());
assertNoCoErrorsLogged(timeMeasuringSystem.getDurationInSeconds(testClass, testName, timeMeasuringSystem.getOperationID()));
// scale down
int scaledDownReplicas = 3;
LOGGER.info("Scaling down to {}", scaledDownReplicas);
timeMeasuringSystem.setOperationID(timeMeasuringSystem.startTimeMeasuring(Operation.SCALE_DOWN));
KafkaResource.replaceKafkaResource(CLUSTER_NAME, k -> k.getSpec().getKafka().setReplicas(scaledDownReplicas));
StatefulSetUtils.waitForAllStatefulSetPodsReady(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME), scaledDownReplicas);
PodUtils.verifyThatRunningPodsAreStable(CLUSTER_NAME);
// set annotation to trigger Kafka rolling update
kubeClient().statefulSet(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME)).cascading(false).edit()
.editMetadata()
.addToAnnotations(Annotations.ANNO_STRIMZI_IO_MANUAL_ROLLING_UPDATE, "true")
.endMetadata()
.done();
StatefulSetUtils.waitTillSsHasRolled(KafkaResources.kafkaStatefulSetName(CLUSTER_NAME), kafkaPods);
}
示例25
@Override
public MixedOperation<Event, EventList, DoneableEvent, Resource<Event, DoneableEvent>> events() {
return delegate.events();
}
示例26
@Override
public MixedOperation<Event, EventList, DoneableEvent, Resource<Event, DoneableEvent>> events() {
return new EventOperationsImpl(httpClient, getConfiguration());
}
示例27
@Override
public MixedOperation<Event, EventList, DoneableEvent, Resource<Event, DoneableEvent>> events() {
return new EventOperationsImpl(httpClient, getConfiguration());
}
示例28
public MixedOperation<Event, EventList, DoneableEvent, Resource<Event, DoneableEvent>> events() {
return delegate.events();
}
示例29
@Test
void testGetPluralFromKind() {
// Given
Map<String, Class> pluralToKubernetesResourceMap = new HashMap<>();
pluralToKubernetesResourceMap.put("bindings", Binding.class);
pluralToKubernetesResourceMap.put("componentstatuses", ComponentStatus.class);
pluralToKubernetesResourceMap.put("configmaps", ConfigMap.class);
pluralToKubernetesResourceMap.put("endpoints", Endpoints.class);
pluralToKubernetesResourceMap.put("events", Event.class);
pluralToKubernetesResourceMap.put("limitranges", LimitRange.class);
pluralToKubernetesResourceMap.put("namespaces", Namespace.class);
pluralToKubernetesResourceMap.put("nodes", Node.class);
pluralToKubernetesResourceMap.put("persistentvolumeclaims", PersistentVolumeClaim.class);
pluralToKubernetesResourceMap.put("persistentvolumes", PersistentVolume.class);
pluralToKubernetesResourceMap.put("pods", Pod.class);
pluralToKubernetesResourceMap.put("podtemplates", PodTemplate.class);
pluralToKubernetesResourceMap.put("replicationcontrollers", ReplicationController.class);
pluralToKubernetesResourceMap.put("resourcequotas", ResourceQuota.class);
pluralToKubernetesResourceMap.put("secrets", Secret.class);
pluralToKubernetesResourceMap.put("serviceaccounts", ServiceAccount.class);
pluralToKubernetesResourceMap.put("services", Service.class);
pluralToKubernetesResourceMap.put("mutatingwebhookconfigurations", MutatingWebhookConfiguration.class);
pluralToKubernetesResourceMap.put("validatingwebhookconfigurations", ValidatingWebhookConfiguration.class);
pluralToKubernetesResourceMap.put("customresourcedefinitions", CustomResourceDefinition.class);
pluralToKubernetesResourceMap.put("controllerrevisions", ControllerRevision.class);
pluralToKubernetesResourceMap.put("daemonsets", DaemonSet.class);
pluralToKubernetesResourceMap.put("deployments", Deployment.class);
pluralToKubernetesResourceMap.put("replicasets", ReplicaSet.class);
pluralToKubernetesResourceMap.put("statefulsets", StatefulSet.class);
pluralToKubernetesResourceMap.put("tokenreviews", TokenReview.class);
pluralToKubernetesResourceMap.put("localsubjectaccessreviews", LocalSubjectAccessReview.class);
pluralToKubernetesResourceMap.put("selfsubjectaccessreviews", SelfSubjectAccessReview.class);
pluralToKubernetesResourceMap.put("selfsubjectrulesreviews", SelfSubjectRulesReview.class);
pluralToKubernetesResourceMap.put("subjectaccessreviews", SubjectAccessReview.class);
pluralToKubernetesResourceMap.put("horizontalpodautoscalers", HorizontalPodAutoscaler.class);
pluralToKubernetesResourceMap.put("cronjobs", CronJob.class);
pluralToKubernetesResourceMap.put("jobs", Job.class);
pluralToKubernetesResourceMap.put("certificatesigningrequests", CertificateSigningRequest.class);
pluralToKubernetesResourceMap.put("leases", Lease.class);
pluralToKubernetesResourceMap.put("endpointslices", EndpointSlice.class);
pluralToKubernetesResourceMap.put("ingresses", Ingress.class);
pluralToKubernetesResourceMap.put("networkpolicies", NetworkPolicy.class);
pluralToKubernetesResourceMap.put("poddisruptionbudgets", PodDisruptionBudget.class);
pluralToKubernetesResourceMap.put("podsecuritypolicies", PodSecurityPolicy.class);
pluralToKubernetesResourceMap.put("clusterrolebindings", ClusterRoleBinding.class);
pluralToKubernetesResourceMap.put("clusterroles", ClusterRole.class);
pluralToKubernetesResourceMap.put("rolebindings", RoleBinding.class);
pluralToKubernetesResourceMap.put("roles", Role.class);
pluralToKubernetesResourceMap.put("priorityclasses", PriorityClass.class);
pluralToKubernetesResourceMap.put("csidrivers", CSIDriver.class);
pluralToKubernetesResourceMap.put("csinodes", CSINode.class);
pluralToKubernetesResourceMap.put("storageclasses", StorageClass.class);
pluralToKubernetesResourceMap.put("volumeattachments", VolumeAttachment.class);
// When & Then
pluralToKubernetesResourceMap.forEach((plural, kubernetesResource)
-> assertEquals(plural, Utils.getPluralFromKind(kubernetesResource.getSimpleName())));
}
示例30
@Test
@DisplayName("Should test whether resource is namespaced or not")
void testWhetherNamespacedOrNot() {
assertTrue(Utils.isResourceNamespaced(Binding.class));
assertFalse(Utils.isResourceNamespaced(ComponentStatus.class));
assertTrue(Utils.isResourceNamespaced(ConfigMap.class));
assertTrue(Utils.isResourceNamespaced(Endpoints.class));
assertTrue(Utils.isResourceNamespaced(Event.class));
assertTrue(Utils.isResourceNamespaced(LimitRange.class));
assertFalse(Utils.isResourceNamespaced(Namespace.class));
assertFalse(Utils.isResourceNamespaced(Node.class));
assertTrue(Utils.isResourceNamespaced(PersistentVolumeClaim.class));
assertFalse(Utils.isResourceNamespaced(PersistentVolume.class));
assertTrue(Utils.isResourceNamespaced(Pod.class));
assertTrue(Utils.isResourceNamespaced(PodTemplate.class));
assertTrue(Utils.isResourceNamespaced(ReplicationController.class));
assertTrue(Utils.isResourceNamespaced(ResourceQuota.class));
assertTrue(Utils.isResourceNamespaced(Secret.class));
assertTrue(Utils.isResourceNamespaced(ServiceAccount.class));
assertTrue(Utils.isResourceNamespaced(Service.class));
assertFalse(Utils.isResourceNamespaced(MutatingWebhookConfiguration.class));
assertFalse(Utils.isResourceNamespaced(ValidatingWebhookConfiguration.class));
assertFalse(Utils.isResourceNamespaced(CustomResourceDefinition.class));
assertTrue(Utils.isResourceNamespaced(ControllerRevision.class));
assertTrue(Utils.isResourceNamespaced(DaemonSet.class));
assertTrue(Utils.isResourceNamespaced(Deployment.class));
assertTrue(Utils.isResourceNamespaced(ReplicaSet.class));
assertTrue(Utils.isResourceNamespaced(StatefulSet.class));
assertTrue(Utils.isResourceNamespaced(TokenReview.class));
assertTrue(Utils.isResourceNamespaced(LocalSubjectAccessReview.class));
assertTrue(Utils.isResourceNamespaced(SelfSubjectAccessReview.class));
assertTrue(Utils.isResourceNamespaced(SelfSubjectRulesReview.class));
assertTrue(Utils.isResourceNamespaced(SubjectAccessReview.class));
assertTrue(Utils.isResourceNamespaced(HorizontalPodAutoscaler.class));
assertTrue(Utils.isResourceNamespaced(CronJob.class));
assertTrue(Utils.isResourceNamespaced(Job.class));
assertTrue(Utils.isResourceNamespaced(CertificateSigningRequest.class));
assertTrue(Utils.isResourceNamespaced(Lease.class));
assertTrue(Utils.isResourceNamespaced(EndpointSlice.class));
assertTrue(Utils.isResourceNamespaced(Ingress.class));
assertTrue(Utils.isResourceNamespaced(NetworkPolicy.class));
assertTrue(Utils.isResourceNamespaced(PodDisruptionBudget.class));
assertFalse(Utils.isResourceNamespaced(PodSecurityPolicy.class));
assertFalse(Utils.isResourceNamespaced(ClusterRoleBinding.class));
assertFalse(Utils.isResourceNamespaced(ClusterRole.class));
assertTrue(Utils.isResourceNamespaced(RoleBinding.class));
assertTrue(Utils.isResourceNamespaced(Role.class));
assertFalse(Utils.isResourceNamespaced(PriorityClass.class));
assertTrue(Utils.isResourceNamespaced(CSIDriver.class));
assertTrue(Utils.isResourceNamespaced(CSINode.class));
assertFalse(Utils.isResourceNamespaced(StorageClass.class));
assertTrue(Utils.isResourceNamespaced(VolumeAttachment.class));
}