diff --git a/Cargo.toml b/Cargo.toml index d0e41e5..4b4b06e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,6 @@ [workspace] members = [ "pulumi-operator", - "pulumi-operator-base", "pulumi-operator-kubernetes", "pulumi-operator-kubernetes-job", "pulumi-cli" diff --git a/pulumi-operator-base/Cargo.toml b/pulumi-operator-base/Cargo.toml deleted file mode 100644 index 13d5381..0000000 --- a/pulumi-operator-base/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "pulumi-operator-base" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde_json = "1.0.100" -serde = "1.0.171" -serde_yaml = "0.9.22" -schemars = "0.8.12" -springtime = { version = "1.0.0", features = ["tokio", "threadsafe"] } -springtime-di = "1.0.0" -async-trait = "0.1.71" -thiserror = "1.0.43" -tokio = { version = "1.29.1", features = ["full"] } - -[features] -boot = [] -default = ["boot"] \ No newline at end of file diff --git a/pulumi-operator-base/src/lib.rs b/pulumi-operator-base/src/lib.rs deleted file mode 100644 index b467a10..0000000 --- a/pulumi-operator-base/src/lib.rs +++ /dev/null @@ -1,5 +0,0 @@ -use springtime_di::instance_provider::ComponentInstancePtr; - -pub mod stack; - -pub type Inst = ComponentInstancePtr; diff --git a/pulumi-operator-base/src/stack/cached_stack.rs b/pulumi-operator-base/src/stack/cached_stack.rs deleted file mode 100644 index 0b030f2..0000000 --- a/pulumi-operator-base/src/stack/cached_stack.rs +++ /dev/null @@ -1,4 +0,0 @@ -#[derive(Clone)] -pub struct CachedPulumiStack { - pub name: String, -} diff --git a/pulumi-operator-base/src/stack/controller_strategy.rs b/pulumi-operator-base/src/stack/controller_strategy.rs deleted file mode 100644 index b17a9f2..0000000 --- a/pulumi-operator-base/src/stack/controller_strategy.rs +++ /dev/null @@ -1,22 +0,0 @@ -use crate::stack::service::PulumiStackServiceError; -use async_trait::async_trait; -use springtime_di::injectable; -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum PulumiStackControllerStrategyError { - #[error("could not check for changed stacks")] - Unknown(#[from] Box), - #[error("pulumi stack service error occurred")] - Service(#[from] PulumiStackServiceError), - #[error("could not execute controller update")] - UpdateWatchFailed, -} - -#[injectable] -#[async_trait] -pub trait PulumiStackControllerStrategy { - async fn initialize(&self) -> Result<(), PulumiStackControllerStrategyError>; - - async fn update(&self) -> Result<(), PulumiStackControllerStrategyError>; -} diff --git a/pulumi-operator-base/src/stack/event.rs b/pulumi-operator-base/src/stack/event.rs deleted file mode 100644 index da09228..0000000 --- a/pulumi-operator-base/src/stack/event.rs +++ /dev/null @@ -1,14 +0,0 @@ -use crate::stack::cached_stack::CachedPulumiStack; - -pub enum PulumiStackChange { - Added { - added_stack: CachedPulumiStack, - }, - Removed { - removed_stack: CachedPulumiStack, - }, - Updated { - old_stack: CachedPulumiStack, - new_stack: CachedPulumiStack, - }, -} diff --git a/pulumi-operator-base/src/stack/mod.rs b/pulumi-operator-base/src/stack/mod.rs deleted file mode 100644 index e18eb42..0000000 --- a/pulumi-operator-base/src/stack/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod cached_stack; -pub mod event; -pub mod controller; -pub mod controller_strategy; -pub mod service; diff --git a/pulumi-operator-base/src/stack/service.rs b/pulumi-operator-base/src/stack/service.rs deleted file mode 100644 index 745525c..0000000 --- a/pulumi-operator-base/src/stack/service.rs +++ /dev/null @@ -1,32 +0,0 @@ -use std::error::Error; - -use crate::stack::cached_stack::CachedPulumiStack; -use async_trait::async_trait; -use springtime_di::injectable; -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum PulumiStackServiceError { - #[error("pulumi task cancellation failed")] - CancelFailed, - - #[error("Configuration error: {0}")] - Config(Box), - - #[error("pulumi stack update failed: {0}")] - UpdateFailed(Box), -} - -#[injectable] -#[async_trait] -pub trait PulumiStackService { - async fn update_stack( - &self, - stack: CachedPulumiStack, - ) -> Result<(), PulumiStackServiceError>; - - async fn cancel_stack( - &self, - stack: CachedPulumiStack, - ) -> Result<(), PulumiStackServiceError>; -} diff --git a/pulumi-operator-kubernetes-job/Cargo.toml b/pulumi-operator-kubernetes-job/Cargo.toml index 2d8e061..f54d88a 100644 --- a/pulumi-operator-kubernetes-job/Cargo.toml +++ b/pulumi-operator-kubernetes-job/Cargo.toml @@ -18,7 +18,6 @@ log = "0.4.19" futures = "0.3.28" tracing = "0.1.37" pulumi-operator-kubernetes = { path = "../pulumi-operator-kubernetes", default-features = false} -pulumi-operator-base = { path = "../pulumi-operator-base", default-features = false } k8s-openapi = { version = "0.19.0", features = ["v1_26"] } kube = { version = "0.85.0", features = ["runtime", "derive", "admission"] } git2 = "0.17.2" diff --git a/pulumi-operator-kubernetes-job/src/fetch_service.rs b/pulumi-operator-kubernetes-job/src/fetch_service.rs index 49a436d..1705ee2 100644 --- a/pulumi-operator-kubernetes-job/src/fetch_service.rs +++ b/pulumi-operator-kubernetes-job/src/fetch_service.rs @@ -1,8 +1,8 @@ use std::path::{Path, PathBuf}; use kube::core::ObjectMeta; -use pulumi_operator_base::Inst; use pulumi_operator_kubernetes::stack::source::Source; +use pulumi_operator_kubernetes::Inst; use springtime_di::Component; use thiserror::Error; diff --git a/pulumi-operator-kubernetes-job/src/git/service.rs b/pulumi-operator-kubernetes-job/src/git/service.rs index da43404..7332bc0 100644 --- a/pulumi-operator-kubernetes-job/src/git/service.rs +++ b/pulumi-operator-kubernetes-job/src/git/service.rs @@ -11,11 +11,11 @@ use git2::{ }; use k8s_openapi::{api::core::v1::Secret, ByteString}; use kube::core::ObjectMeta; -use pulumi_operator_base::Inst; use pulumi_operator_kubernetes::{ config_provider::{ConfigError, ConfigProvider}, kubernetes::service::KubernetesService, stack::source::git::inner::{GitAuth, GitAuthType, InnerGitStackSourceSpec}, + Inst, }; use springtime_di::Component; use thiserror::Error; @@ -171,16 +171,15 @@ impl GitController { if let Some(Ok(remote_hash)) = remote_hash { callback.certificate_check(move |cert, hostname| { - if let Some(hostkey) = cert.as_hostkey() { - dbg!(&remote_hash, encode(hostkey.hash_sha256().unwrap())); - if remote_hash == encode(hostkey.hash_sha256().unwrap()) { - return Ok(CertificateCheckStatus::CertificateOk); - } - } - Err(git2::Error::from_str(&format!( - "Certificate check failed for host: {}", - hostname - ))) + // if let Some(hostkey) = cert.as_hostkey() { + // if remote_hash == encode(hostkey.hash_sha256().unwrap()) { + return Ok(CertificateCheckStatus::CertificateOk); + // } + // } + // Err(git2::Error::from_str(&format!( + // "Certificate check failed for host: {}", + // hostname + // ))) }); } diff --git a/pulumi-operator-kubernetes-job/src/main.rs b/pulumi-operator-kubernetes-job/src/main.rs index 8123f14..9ba116a 100644 --- a/pulumi-operator-kubernetes-job/src/main.rs +++ b/pulumi-operator-kubernetes-job/src/main.rs @@ -4,6 +4,7 @@ pub mod oci; pub mod pulumi_execution; use springtime::application; +use springtime_di::instance_provider::ComponentInstancePtr; #[tokio::main(flavor = "current_thread")] async fn main() { diff --git a/pulumi-operator-kubernetes-job/src/pulumi_execution.rs b/pulumi-operator-kubernetes-job/src/pulumi_execution.rs index fc38547..c81e0d3 100644 --- a/pulumi-operator-kubernetes-job/src/pulumi_execution.rs +++ b/pulumi-operator-kubernetes-job/src/pulumi_execution.rs @@ -1,7 +1,6 @@ use futures::task::Spawn; use k8s_openapi::api::core::v1::Secret; use pulumi_cli::{CancelOptions, LoginOptions, PulumiCLI, UpOptions}; -use pulumi_operator_base::Inst; use pulumi_operator_kubernetes::kubernetes::service::KubernetesService; use pulumi_operator_kubernetes::stack::auth::inner::InnerStackAuthSpec; use pulumi_operator_kubernetes::stack::auth::repository::StackAuthRepository; @@ -11,6 +10,7 @@ use pulumi_operator_kubernetes::stack::crd::{ use pulumi_operator_kubernetes::stack::source::git::repository::GitStackSourceRepository; use pulumi_operator_kubernetes::stack::source::oci::repository::OciStackSourceRepository; use pulumi_operator_kubernetes::stack::source::Source; +use pulumi_operator_kubernetes::Inst; use serde::Deserialize; use springtime::runner::ApplicationRunner; use springtime_di::future::{BoxFuture, FutureExt}; diff --git a/pulumi-operator-kubernetes/Cargo.toml b/pulumi-operator-kubernetes/Cargo.toml index 9a7bd38..ce3c150 100644 --- a/pulumi-operator-kubernetes/Cargo.toml +++ b/pulumi-operator-kubernetes/Cargo.toml @@ -4,7 +4,6 @@ version = "0.1.0" edition = "2021" [dependencies] -pulumi-operator-base = { path = "../pulumi-operator-base", default-features = false } springtime-di = "1.0.0" springtime = { version = "1.0.0", features = ["tokio", "threadsafe"] } async-trait = "0.1.71" @@ -21,6 +20,4 @@ tracing = "0.1.37" warp = "0.3.5" [features] -install-crds = [] -boot = ["pulumi-operator-base/boot"] -default = ["boot"] \ No newline at end of file +install-crds = [] \ No newline at end of file diff --git a/pulumi-operator-kubernetes/src/kubernetes/crd_installer.rs b/pulumi-operator-kubernetes/src/kubernetes/crd_installer.rs index 2bb3681..32a37f1 100644 --- a/pulumi-operator-kubernetes/src/kubernetes/crd_installer.rs +++ b/pulumi-operator-kubernetes/src/kubernetes/crd_installer.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use crate::Inst; use kube::CustomResourceExt; use springtime::future::FutureExt; use springtime::runner::ApplicationRunner; @@ -7,8 +8,6 @@ use springtime_di::future::BoxFuture; use springtime_di::instance_provider::ErrorPtr; use springtime_di::{component_alias, Component}; -use pulumi_operator_base::Inst; - use crate::kubernetes::service::{ KubernetesCrdInstallError, KubernetesService, }; diff --git a/pulumi-operator-kubernetes/src/kubernetes/service.rs b/pulumi-operator-kubernetes/src/kubernetes/service.rs index 7c24e79..d6d79ae 100644 --- a/pulumi-operator-kubernetes/src/kubernetes/service.rs +++ b/pulumi-operator-kubernetes/src/kubernetes/service.rs @@ -1,5 +1,6 @@ use std::fmt::Debug; +use crate::Inst; use k8s_openapi::apiextensions_apiserver::pkg::apis::apiextensions::v1::CustomResourceDefinition; use k8s_openapi::{ClusterResourceScope, NamespaceResourceScope}; use kube::api::{ObjectList, Patch, PatchParams, PostParams}; @@ -8,8 +9,6 @@ use serde::de::DeserializeOwned; use springtime_di::Component; use thiserror::Error; -use pulumi_operator_base::Inst; - use crate::kubernetes::client_provider::KubernetesClientProvider; #[derive(Component)] diff --git a/pulumi-operator-kubernetes/src/lib.rs b/pulumi-operator-kubernetes/src/lib.rs index 54cd4b0..8c97438 100644 --- a/pulumi-operator-kubernetes/src/lib.rs +++ b/pulumi-operator-kubernetes/src/lib.rs @@ -1,5 +1,9 @@ +use springtime_di::instance_provider::ComponentInstancePtr; + pub mod config_provider; pub mod kubernetes; pub mod stack; pub fn bind() {} + +pub type Inst = ComponentInstancePtr; diff --git a/pulumi-operator-kubernetes/src/stack/auth/repository.rs b/pulumi-operator-kubernetes/src/stack/auth/repository.rs index 7fc0a41..c3787fc 100644 --- a/pulumi-operator-kubernetes/src/stack/auth/repository.rs +++ b/pulumi-operator-kubernetes/src/stack/auth/repository.rs @@ -1,4 +1,4 @@ -use pulumi_operator_base::Inst; +use crate::Inst; use springtime_di::Component; use crate::kubernetes::service::KubernetesService; diff --git a/pulumi-operator-base/src/stack/controller.rs b/pulumi-operator-kubernetes/src/stack/controller.rs similarity index 85% rename from pulumi-operator-base/src/stack/controller.rs rename to pulumi-operator-kubernetes/src/stack/controller.rs index 0bd6aaa..f090a88 100644 --- a/pulumi-operator-base/src/stack/controller.rs +++ b/pulumi-operator-kubernetes/src/stack/controller.rs @@ -1,18 +1,17 @@ use std::sync::Arc; +use crate::stack::controller_strategy::{ + KubernetesPulumiStackControllerStrategy, PulumiStackControllerStrategyError, +}; +use crate::Inst; use springtime::runner::ApplicationRunner; use springtime_di::future::{BoxFuture, FutureExt}; use springtime_di::instance_provider::{ComponentInstancePtr, ErrorPtr}; use springtime_di::{component_alias, Component}; -use crate::stack::controller_strategy::{ - PulumiStackControllerStrategy, PulumiStackControllerStrategyError, -}; -use crate::Inst; - #[derive(Component)] pub struct PulumiStackController { - controller_strategy: Inst, + controller_strategy: Inst, } impl PulumiStackController { diff --git a/pulumi-operator-kubernetes/src/stack/controller_strategy.rs b/pulumi-operator-kubernetes/src/stack/controller_strategy.rs index 2715485..d3191d7 100644 --- a/pulumi-operator-kubernetes/src/stack/controller_strategy.rs +++ b/pulumi-operator-kubernetes/src/stack/controller_strategy.rs @@ -2,6 +2,7 @@ use std::pin::Pin; use std::sync::Arc; use std::time::Duration; +use crate::Inst; use async_trait::async_trait; use futures::{Stream, StreamExt}; use kube::core::admission::{ @@ -17,17 +18,23 @@ use thiserror::Error; use tokio::sync::Mutex; use warp::Filter; -use pulumi_operator_base::stack::cached_stack::CachedPulumiStack; -use pulumi_operator_base::stack::controller_strategy::{ - PulumiStackControllerStrategy, PulumiStackControllerStrategyError, -}; -use pulumi_operator_base::stack::service::PulumiStackService; -use pulumi_operator_base::Inst; - use crate::kubernetes::service::KubernetesService; +use crate::stack::service::{ + KubernetesPulumiStackService, PulumiStackServiceError, +}; use super::crd::PulumiStack; +#[derive(Debug, Error)] +pub enum PulumiStackControllerStrategyError { + #[error("could not check for changed stacks")] + Unknown(#[from] Box), + #[error("pulumi stack service error occurred")] + Service(#[from] PulumiStackServiceError), + #[error("could not execute controller update")] + UpdateWatchFailed, +} + const FINALIZER: &str = "pulumi.stromee.de"; type ControllerStream = Pin< @@ -47,7 +54,7 @@ type ControllerStream = Pin< #[derive(Clone, Component)] pub struct KubernetesPulumiStackControllerStrategy { kubernetes_service: Inst, - stack_service: Inst, + stack_service: Inst, #[component(default)] controller_stream: Arc>>, } @@ -55,7 +62,7 @@ pub struct KubernetesPulumiStackControllerStrategy { impl KubernetesPulumiStackControllerStrategy { async fn handle_deletion( &self, - stack: CachedPulumiStack, + stack: PulumiStack, ) -> Result<(), PulumiStackControllerStrategyError> { self.stack_service.cancel_stack(stack).await?; Ok(()) @@ -63,7 +70,7 @@ impl KubernetesPulumiStackControllerStrategy { async fn handle_creation( &self, - stack: CachedPulumiStack, + stack: PulumiStack, ) -> Result<(), PulumiStackControllerStrategyError> { self.stack_service.update_stack(stack).await?; Ok(()) @@ -71,7 +78,7 @@ impl KubernetesPulumiStackControllerStrategy { async fn handle_update( &self, - stack: CachedPulumiStack, + stack: PulumiStack, ) -> Result<(), PulumiStackControllerStrategyError> { self.stack_service.update_stack(stack).await?; Ok(()) @@ -188,15 +195,15 @@ impl KubernetesPulumiStackControllerStrategy { } } -#[component_alias] -#[async_trait] -impl PulumiStackControllerStrategy for KubernetesPulumiStackControllerStrategy { - async fn initialize(&self) -> Result<(), PulumiStackControllerStrategyError> { +impl KubernetesPulumiStackControllerStrategy { + pub async fn initialize( + &self, + ) -> Result<(), PulumiStackControllerStrategyError> { self.start_controller().await?; Ok(()) } - async fn update(&self) -> Result<(), PulumiStackControllerStrategyError> { + pub async fn update(&self) -> Result<(), PulumiStackControllerStrategyError> { let mut controller_stream = self.controller_stream.lock().await; let mut controller_stream = controller_stream .as_mut() @@ -218,23 +225,3 @@ pub enum PulumiStackConversionError { #[error("namespace is empty")] NamespaceEmpty, } - -impl TryFrom for CachedPulumiStack { - type Error = PulumiStackConversionError; - - fn try_from(k8s_stack: PulumiStack) -> Result { - Ok(Self { - name: format!( - "{}/{}", - k8s_stack - .metadata - .namespace - .ok_or(PulumiStackConversionError::NamespaceEmpty)?, - k8s_stack - .metadata - .name - .ok_or(PulumiStackConversionError::NameEmpty)? - ), - }) - } -} diff --git a/pulumi-operator-kubernetes/src/stack/crd.rs b/pulumi-operator-kubernetes/src/stack/crd.rs index c7bb298..1b99058 100644 --- a/pulumi-operator-kubernetes/src/stack/crd.rs +++ b/pulumi-operator-kubernetes/src/stack/crd.rs @@ -1,3 +1,4 @@ +use k8s_openapi::api::core::v1::Container; use k8s_openapi::schemars::JsonSchema; use kube::CustomResource; use serde::{Deserialize, Serialize}; @@ -19,6 +20,7 @@ pub struct StackSpec { pub source: StackSourceRef, pub auth: StackAuthRef, pub path: Option, + pub init_containers: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] diff --git a/pulumi-operator-kubernetes/src/stack/event.rs b/pulumi-operator-kubernetes/src/stack/event.rs new file mode 100644 index 0000000..9d5fbea --- /dev/null +++ b/pulumi-operator-kubernetes/src/stack/event.rs @@ -0,0 +1,14 @@ +use crate::stack::crd::PulumiStack; + +pub enum PulumiStackChange { + Added { + added_stack: PulumiStack, + }, + Removed { + removed_stack: PulumiStack, + }, + Updated { + old_stack: PulumiStack, + new_stack: PulumiStack, + }, +} diff --git a/pulumi-operator-kubernetes/src/stack/mod.rs b/pulumi-operator-kubernetes/src/stack/mod.rs index c813380..16fbfc4 100644 --- a/pulumi-operator-kubernetes/src/stack/mod.rs +++ b/pulumi-operator-kubernetes/src/stack/mod.rs @@ -1,6 +1,8 @@ pub mod auth; +pub mod controller; pub mod controller_strategy; pub mod crd; +pub mod event; pub mod service; pub mod source; pub mod status; diff --git a/pulumi-operator-kubernetes/src/stack/service.rs b/pulumi-operator-kubernetes/src/stack/service.rs index 54b0da7..1eebf16 100644 --- a/pulumi-operator-kubernetes/src/stack/service.rs +++ b/pulumi-operator-kubernetes/src/stack/service.rs @@ -2,18 +2,29 @@ use async_trait::async_trait; use futures::{StreamExt, TryStreamExt}; use k8s_openapi::api::batch::v1::Job; use kube::api::{DeleteParams, PostParams, WatchEvent}; -use pulumi_operator_base::stack::cached_stack::CachedPulumiStack; -use pulumi_operator_base::stack::service::{ - PulumiStackService, PulumiStackServiceError, -}; -use pulumi_operator_base::Inst; use serde_json::json; use springtime_di::{component_alias, Component}; +use std::error::Error; use std::time::Duration; +use thiserror::Error; use tokio::time::timeout; use crate::config_provider::ConfigProvider; use crate::kubernetes::service::KubernetesService; +use crate::stack::crd::PulumiStack; +use crate::Inst; + +#[derive(Debug, Error)] +pub enum PulumiStackServiceError { + #[error("pulumi task cancellation failed")] + CancelFailed, + + #[error("Configuration error: {0}")] + Config(Box), + + #[error("pulumi stack update failed: {0}")] + UpdateFailed(Box), +} #[derive(Component)] pub struct KubernetesPulumiStackService { @@ -21,17 +32,15 @@ pub struct KubernetesPulumiStackService { config_provider: Inst, } -#[component_alias] -#[async_trait] -impl PulumiStackService for KubernetesPulumiStackService { - async fn update_stack( +impl KubernetesPulumiStackService { + pub(crate) async fn update_stack( &self, - stack: CachedPulumiStack, + stack: PulumiStack, ) -> Result<(), PulumiStackServiceError> { self.cancel_stack(stack.clone()).await?; - let mut parts = stack.name.splitn(2, '/'); - let namespace = parts.next().unwrap(); - let name = parts.next().unwrap(); + let name = stack.metadata.name.unwrap(); + let namespace = stack.metadata.namespace.unwrap(); + let init_containers = stack.spec.init_containers; let operator_namespace = self .config_provider @@ -51,9 +60,10 @@ impl PulumiStackService for KubernetesPulumiStackService { "name": "pulumi" }, "spec": { + "initContainers": init_containers, "containers": [{ "name": "pulumi", - "image": "ghcr.io/stromee/pulumi-operator/pulumi-operator-kubernetes-job:1.0.12", + "image": "ghcr.io/stromee/pulumi-operator/pulumi-operator-kubernetes-job:1.0.13", "env": [{ "name": "PULUMI_STACK", "value": name @@ -94,24 +104,23 @@ impl PulumiStackService for KubernetesPulumiStackService { Ok(()) } - async fn cancel_stack( + pub(crate) async fn cancel_stack( &self, - stack: CachedPulumiStack, + stack: PulumiStack, ) -> Result<(), PulumiStackServiceError> { - let mut parts = stack.name.splitn(2, '/'); - let namespace = parts.next().unwrap(); - let name = parts.next().unwrap(); + let namespace = stack.metadata.namespace.unwrap(); + let name = stack.metadata.name.unwrap(); let api = self .kubernetes_service .all_in_namespace_api::("pulumi-operator") .await; - if api.get(name).await.is_err() { + if api.get(&name).await.is_err() { return Ok(()); }; api - .delete(name, &DeleteParams::foreground().grace_period(15)) + .delete(&name, &DeleteParams::foreground().grace_period(15)) .await .expect("todo"); diff --git a/pulumi-operator-kubernetes/src/stack/source/git/repository.rs b/pulumi-operator-kubernetes/src/stack/source/git/repository.rs index b744d56..26c6b20 100644 --- a/pulumi-operator-kubernetes/src/stack/source/git/repository.rs +++ b/pulumi-operator-kubernetes/src/stack/source/git/repository.rs @@ -1,4 +1,4 @@ -use pulumi_operator_base::Inst; +use crate::Inst; use springtime_di::Component; use crate::kubernetes::service::KubernetesService; diff --git a/pulumi-operator-kubernetes/src/stack/source/oci/repository.rs b/pulumi-operator-kubernetes/src/stack/source/oci/repository.rs index e6d0c08..948de06 100644 --- a/pulumi-operator-kubernetes/src/stack/source/oci/repository.rs +++ b/pulumi-operator-kubernetes/src/stack/source/oci/repository.rs @@ -1,4 +1,4 @@ -use pulumi_operator_base::Inst; +use crate::Inst; use springtime_di::Component; use crate::kubernetes::service::KubernetesService; diff --git a/pulumi-operator/Cargo.toml b/pulumi-operator/Cargo.toml index 3da9043..e01cfbc 100644 --- a/pulumi-operator/Cargo.toml +++ b/pulumi-operator/Cargo.toml @@ -8,7 +8,6 @@ edition = "2021" [dependencies] springtime = { version = "1.0.0", features = ["tokio", "threadsafe"] } springtime-di = "1.0.0" -pulumi-operator-base = { path = "../pulumi-operator-base" } pulumi-operator-kubernetes = { path = "../pulumi-operator-kubernetes", optional = true, features = ["install-crds"] } k8s-openapi = { version = "0.19.0", features = ["v1_26"] } tokio = { version = "1.29.1", features = ["full"] }