Skip to content

Commit ee9d1ce

Browse files
committed
Better error handling in Kubernetes controller reconciler
1 parent 101ae9c commit ee9d1ce

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/controller/epsilon_controller.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ use kube::runtime::controller::Action;
1616
use kube::runtime::controller::Error::ObjectNotFound;
1717
use kube::runtime::reflector::{ObjectRef, Store};
1818
use kube::runtime::Controller;
19+
use kube::Resource;
1920
use kube::{Api, Client, Config};
20-
use kube::{Error, Resource};
2121
use serde_json::{json, Value};
2222
use std::collections::BTreeMap;
2323
use std::env;
@@ -80,7 +80,7 @@ impl EpsilonController {
8080
async fn reconcile(
8181
epsilon_instance: Arc<EpsilonInstance>,
8282
context: Arc<Context>,
83-
) -> Result<Action, Error> {
83+
) -> Result<Action, EpsilonError> {
8484
let pod_api = &context.pod_api;
8585
let epsilon_instance_api = &context.epsilon_instance_api;
8686

@@ -104,8 +104,7 @@ impl EpsilonController {
104104

105105
let template = template_provider
106106
.get_template(instance_template_name)
107-
.await
108-
.unwrap();
107+
.await?;
109108

110109
let instance_type = &template.t;
111110
let instance_resource = &template.resources;
@@ -204,8 +203,7 @@ impl EpsilonController {
204203
None => {
205204
let template = template_provider
206205
.get_template(instance_template_name)
207-
.await
208-
.unwrap();
206+
.await?;
209207

210208
let template_type = template.t.clone();
211209

@@ -275,7 +273,7 @@ impl EpsilonController {
275273
Ok(Action::requeue(Duration::from_secs(30)))
276274
}
277275

278-
fn on_error(error: &Error, _context: Arc<Context>) -> Action {
276+
fn on_error(error: &EpsilonError, _context: Arc<Context>) -> Action {
279277
warn!("Reconciliation error: {:?}", error);
280278
Action::requeue(Duration::from_secs(5))
281279
}

src/epsilon/epsilon_error.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ pub enum EpsilonError {
3232
#[error("Queue not found error {0}")]
3333
QueueNotFoundError(String),
3434

35+
#[error("Kubernetes error {0}")]
36+
KubernetesError(#[from] kube::Error),
37+
3538
#[error("Request error {0}")]
3639
RequestError(#[from] reqwest::Error),
3740

0 commit comments

Comments
 (0)