Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend Runtime Interface to Support Cross-Cluster Events #1070

Closed
lukasfrank opened this issue May 31, 2024 · 2 comments · Fixed by #1081 or #1092
Closed

Extend Runtime Interface to Support Cross-Cluster Events #1070

lukasfrank opened this issue May 31, 2024 · 2 comments · Fixed by #1081 or #1092
Assignees
Labels
enhancement New feature or request

Comments

@lukasfrank
Copy link
Member

Summary

This proposal aims to extend the Runtime interface to support cross-cluster events, enhancing observability and debug-ability.

Basic example

To support events, the following components need to be updated:

  • the IronCore Runtime Interface (IRI)
  • <Machine/Volume/Bucket>-provider
  • <Machine/Volume/Bucket>-poollets

Example runtime extension:

  rpc ListEvents(ListEventsRequest) returns (ListEventsResponse) {};

Motivation

Currently, understanding why a resource is in a Pending state can be challenging. Dependencies such as a Volume or a NIC might introduce delays, preventing a Machine from transitioning to the Running state. Kubernetes events offer a common pattern for attaching context to objects. By introducing events and enabling synchronization between clusters, users can use kubectl describe machine to gain meaningful context about an object's status.

Reference: Kubernetes events

@lukasfrank lukasfrank added the enhancement New feature or request label May 31, 2024
@ushabelgur
Copy link
Contributor

ushabelgur commented Jun 12, 2024

This is how we are recording in events:
for eg:

r.Eventf(machine, corev1.EventTypeNormal, events.VolumeNotReady, "Volume %s does not access information", volume.Name)

Proposed event spec:

message EventSpec {
  string machine_id = 1; //instead of InvolvedObject(or regarding) from k8s Event can we just have machine_id? 
  string reason = 2;
  string message = 3;
  string type = 4;
  int64 event_time = 5;
  EventSeries {
      int64 count
      int64 lastObservedTime 
  }
}

These fields are deprecated in latest kubernetes version, so do we really need them ?
first_timestamp
last_timestamp
count

@lukasfrank
Copy link
Member Author

lukasfrank commented Jun 12, 2024

Thanks for your proposal: As already discussed offline, let's leave the deprecated fields out of our spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
3 participants