Pass the kubernetes client as state.
This commit is contained in:
parent
6c15fc00b4
commit
3e3acbab7d
19
src/main.rs
19
src/main.rs
@ -1,4 +1,5 @@
|
||||
#![forbid(unsafe_code)]
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
use axum::http::StatusCode;
|
||||
@ -43,14 +44,14 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.await
|
||||
.expect("Set KUBECONFIG to a valid kubernetes config.");
|
||||
|
||||
let jobs: Api<PipelineRun> = Api::namespaced(kubernetes_client, "lighthouse");
|
||||
// let jobs: Api<PipelineRun> = Api::namespaced(kubernetes_client, "lighthouse");
|
||||
// let jobs: Api<PipelineRun> = Api::default_namespaced(kubernetes_client);
|
||||
tracing::info!("Using crd: {}", serde_json::to_string(&PipelineRun::crd())?);
|
||||
// tracing::info!("Using crd: {}", serde_json::to_string(&PipelineRun::crd())?);
|
||||
|
||||
let test_run: PipelineRun = serde_json::from_str(EXAMPLE_PIPELINE_RUN)?;
|
||||
// let test_run: PipelineRun = serde_json::from_str(EXAMPLE_PIPELINE_RUN)?;
|
||||
|
||||
let pp = PostParams::default();
|
||||
let created_run = jobs.create(&pp, &test_run).await?;
|
||||
// let pp = PostParams::default();
|
||||
// let created_run = jobs.create(&pp, &test_run).await?;
|
||||
|
||||
let app = Router::new()
|
||||
.route("/hook", post(hook))
|
||||
@ -60,7 +61,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
TraceLayer::new_for_http(),
|
||||
// Add a timeout layer so graceful shutdown can't wait forever.
|
||||
TimeoutLayer::new(Duration::from_secs(600)),
|
||||
));
|
||||
))
|
||||
.with_state(AppState { kubernetes_client });
|
||||
|
||||
let listener = tokio::net::TcpListener::bind("0.0.0.0:9988").await?;
|
||||
tracing::info!("listening on {}", listener.local_addr().unwrap());
|
||||
@ -70,6 +72,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
struct AppState {
|
||||
kubernetes_client: Client,
|
||||
}
|
||||
|
||||
async fn shutdown_signal() {
|
||||
let ctrl_c = async {
|
||||
signal::ctrl_c()
|
||||
|
@ -1,10 +1,12 @@
|
||||
use std::future::Future;
|
||||
use std::sync::Arc;
|
||||
|
||||
use axum::async_trait;
|
||||
use axum::body::Body;
|
||||
use axum::body::Bytes;
|
||||
use axum::extract::FromRequest;
|
||||
use axum::extract::Request;
|
||||
use axum::extract::State;
|
||||
use axum::http::HeaderMap;
|
||||
use axum::http::StatusCode;
|
||||
use axum::middleware::Next;
|
||||
@ -21,11 +23,13 @@ use sha2::Sha256;
|
||||
use tracing::debug;
|
||||
|
||||
use crate::hook_push::HookPush;
|
||||
use crate::AppState;
|
||||
|
||||
type HmacSha256 = Hmac<Sha256>;
|
||||
|
||||
pub(crate) async fn hook(
|
||||
_headers: HeaderMap,
|
||||
State(state): State<AppState>,
|
||||
payload: HookRequest,
|
||||
) -> (StatusCode, Json<HookResponse>) {
|
||||
debug!("REQ: {:?}", payload);
|
||||
|
Loading…
x
Reference in New Issue
Block a user