mirror of
https://github.com/jlengrand/engine.git
synced 2026-03-10 08:11:21 +00:00
feat: allowing to activate sticky sessions on router (#546)
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -3244,7 +3244,7 @@ dependencies = [
|
||||
"passwords",
|
||||
"qovery-engine",
|
||||
"rand 0.7.3",
|
||||
"reqwest 0.10.10",
|
||||
"reqwest 0.11.4",
|
||||
"retry",
|
||||
"scaleway_api_rs",
|
||||
"serde",
|
||||
|
||||
@@ -24,6 +24,16 @@ metadata:
|
||||
ingress.kubernetes.io/ssl-redirect: "true"
|
||||
#nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
#nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-csrftoken"
|
||||
{%- if sticky_sessions_enabled == true %}
|
||||
# https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/
|
||||
nginx.ingress.kubernetes.io/affinity: "cookie"
|
||||
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
|
||||
nginx.ingress.kubernetes.io/session-cookie-secure: "true"
|
||||
nginx.ingress.kubernetes.io/session-cookie-name: "INGRESSCOOKIE_QOVERY"
|
||||
nginx.ingress.kubernetes.io/session-cookie-max-age: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-expires: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-samesite: "Lax"
|
||||
{%- endif %}
|
||||
spec:
|
||||
tls:
|
||||
{%- if custom_domains|length > 0 %}
|
||||
|
||||
@@ -24,6 +24,16 @@ metadata:
|
||||
ingress.kubernetes.io/ssl-redirect: "true"
|
||||
#nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
#nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-csrftoken"
|
||||
{%- if sticky_sessions_enabled == true %}
|
||||
# https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/
|
||||
nginx.ingress.kubernetes.io/affinity: "cookie"
|
||||
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
|
||||
nginx.ingress.kubernetes.io/session-cookie-secure: "true"
|
||||
nginx.ingress.kubernetes.io/session-cookie-name: "INGRESSCOOKIE_QOVERY"
|
||||
nginx.ingress.kubernetes.io/session-cookie-max-age: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-expires: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-samesite: "Lax"
|
||||
{%- endif %}
|
||||
spec:
|
||||
tls:
|
||||
{%- if custom_domains|length > 0 %}
|
||||
|
||||
@@ -24,6 +24,16 @@ metadata:
|
||||
ingress.kubernetes.io/ssl-redirect: "true"
|
||||
#nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
#nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-csrftoken"
|
||||
{%- if sticky_sessions_enabled == true %}
|
||||
# https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/
|
||||
nginx.ingress.kubernetes.io/affinity: "cookie"
|
||||
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
|
||||
nginx.ingress.kubernetes.io/session-cookie-secure: "true"
|
||||
nginx.ingress.kubernetes.io/session-cookie-name: "INGRESSCOOKIE_QOVERY"
|
||||
nginx.ingress.kubernetes.io/session-cookie-max-age: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-expires: "85400" # 1 day
|
||||
nginx.ingress.kubernetes.io/session-cookie-samesite: "Lax"
|
||||
{%- endif %}
|
||||
spec:
|
||||
tls:
|
||||
{%- if custom_domains|length > 0 %}
|
||||
|
||||
@@ -20,6 +20,7 @@ pub struct Router {
|
||||
action: Action,
|
||||
default_domain: String,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
sticky_sessions_enabled: bool,
|
||||
routes: Vec<Route>,
|
||||
listeners: Listeners,
|
||||
}
|
||||
@@ -33,6 +34,7 @@ impl Router {
|
||||
default_domain: &str,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
routes: Vec<Route>,
|
||||
sticky_sessions_enabled: bool,
|
||||
listeners: Listeners,
|
||||
) -> Self {
|
||||
Router {
|
||||
@@ -42,6 +44,7 @@ impl Router {
|
||||
action,
|
||||
default_domain: default_domain.to_string(),
|
||||
custom_domains,
|
||||
sticky_sessions_enabled,
|
||||
routes,
|
||||
listeners,
|
||||
}
|
||||
@@ -212,6 +215,9 @@ impl Service for Router {
|
||||
};
|
||||
context.insert("spec_acme_server", lets_encrypt_url);
|
||||
|
||||
// Nginx
|
||||
context.insert("sticky_sessions_enabled", &self.sticky_sessions_enabled);
|
||||
|
||||
Ok(context)
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ pub struct Router {
|
||||
name: String,
|
||||
default_domain: String,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
sticky_sessions_enabled: bool,
|
||||
routes: Vec<Route>,
|
||||
listeners: Listeners,
|
||||
}
|
||||
@@ -33,6 +34,7 @@ impl Router {
|
||||
default_domain: &str,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
routes: Vec<Route>,
|
||||
sticky_sessions_enabled: bool,
|
||||
listeners: Listeners,
|
||||
) -> Self {
|
||||
Router {
|
||||
@@ -42,6 +44,7 @@ impl Router {
|
||||
action,
|
||||
default_domain: default_domain.to_string(),
|
||||
custom_domains,
|
||||
sticky_sessions_enabled,
|
||||
routes,
|
||||
listeners,
|
||||
}
|
||||
@@ -228,7 +231,8 @@ impl Service for Router {
|
||||
};
|
||||
context.insert("spec_acme_server", lets_encrypt_url);
|
||||
|
||||
eprintln!("{}", context.clone().into_json());
|
||||
// Nginx
|
||||
context.insert("sticky_sessions_enabled", &self.sticky_sessions_enabled);
|
||||
|
||||
Ok(context)
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ pub struct Router {
|
||||
name: String,
|
||||
default_domain: String,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
sticky_sessions_enabled: bool,
|
||||
routes: Vec<Route>,
|
||||
listeners: Listeners,
|
||||
}
|
||||
@@ -33,6 +34,7 @@ impl Router {
|
||||
default_domain: &str,
|
||||
custom_domains: Vec<CustomDomain>,
|
||||
routes: Vec<Route>,
|
||||
sticky_sessions_enabled: bool,
|
||||
listeners: Listeners,
|
||||
) -> Router {
|
||||
Router {
|
||||
@@ -42,6 +44,7 @@ impl Router {
|
||||
action,
|
||||
default_domain: default_domain.to_string(),
|
||||
custom_domains,
|
||||
sticky_sessions_enabled,
|
||||
routes,
|
||||
listeners,
|
||||
}
|
||||
@@ -179,6 +182,9 @@ impl Service for Router {
|
||||
};
|
||||
context.insert("spec_acme_server", lets_encrypt_url);
|
||||
|
||||
// Nginx
|
||||
context.insert("sticky_sessions_enabled", &self.sticky_sessions_enabled);
|
||||
|
||||
Ok(context)
|
||||
}
|
||||
|
||||
|
||||
@@ -204,8 +204,8 @@ pub struct Application {
|
||||
pub max_instances: u32,
|
||||
pub start_timeout_in_seconds: u32,
|
||||
pub storage: Vec<Storage>,
|
||||
// Key is a String, Value is a base64 encoded String
|
||||
// Use BTreeMap to get Hash trait which is not available on HashMap
|
||||
/// Key is a String, Value is a base64 encoded String
|
||||
/// Use BTreeMap to get Hash trait which is not available on HashMap
|
||||
pub environment_vars: BTreeMap<String, String>,
|
||||
}
|
||||
|
||||
@@ -546,6 +546,10 @@ pub struct Router {
|
||||
pub action: Action,
|
||||
pub default_domain: String,
|
||||
pub public_port: u16,
|
||||
#[serde(default)]
|
||||
/// sticky_sessions_enabled: enables sticky session for the request to come to the same
|
||||
/// pod replica that was responding to the request before
|
||||
pub sticky_sessions_enabled: bool,
|
||||
pub custom_domains: Vec<CustomDomain>,
|
||||
pub routes: Vec<Route>,
|
||||
}
|
||||
@@ -586,6 +590,7 @@ impl Router {
|
||||
self.default_domain.as_str(),
|
||||
custom_domains,
|
||||
routes,
|
||||
self.sticky_sessions_enabled,
|
||||
listeners,
|
||||
));
|
||||
Some(router)
|
||||
@@ -600,6 +605,7 @@ impl Router {
|
||||
self.default_domain.as_str(),
|
||||
custom_domains,
|
||||
routes,
|
||||
self.sticky_sessions_enabled,
|
||||
listeners,
|
||||
));
|
||||
Some(router)
|
||||
@@ -613,6 +619,7 @@ impl Router {
|
||||
self.default_domain.as_str(),
|
||||
custom_domains,
|
||||
routes,
|
||||
self.sticky_sessions_enabled,
|
||||
listeners,
|
||||
));
|
||||
Some(router)
|
||||
|
||||
2
test_utilities/Cargo.lock
generated
2
test_utilities/Cargo.lock
generated
@@ -3271,7 +3271,7 @@ dependencies = [
|
||||
"passwords",
|
||||
"qovery-engine",
|
||||
"rand 0.7.3",
|
||||
"reqwest 0.10.8",
|
||||
"reqwest 0.11.3",
|
||||
"retry",
|
||||
"scaleway_api_rs",
|
||||
"serde",
|
||||
|
||||
@@ -19,7 +19,7 @@ serde = "1.0"
|
||||
serde_json = "1.0.57"
|
||||
serde_derive = "1.0"
|
||||
curl = "0.4.34"
|
||||
reqwest = { version = "0.10.8", features = ["blocking"] }
|
||||
reqwest = { version = "0.11.3", features = ["blocking", "json"] }
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = "0.2"
|
||||
retry = "1.0.0"
|
||||
|
||||
@@ -185,7 +185,6 @@ pub enum ClusterTestType {
|
||||
|
||||
pub fn environment_3_apps_3_routers_3_databases(
|
||||
context: &Context,
|
||||
organization_id: &str,
|
||||
test_domain: &str,
|
||||
database_instance_type: &str,
|
||||
database_disk_type: &str,
|
||||
@@ -230,7 +229,7 @@ pub fn environment_3_apps_3_routers_3_databases(
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
applications: vec![
|
||||
Application {
|
||||
@@ -379,37 +378,40 @@ pub fn environment_3_apps_3_routers_3_databases(
|
||||
id: generate_id(),
|
||||
name: "main".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/app1".to_string(),
|
||||
application_name: app_name_1.clone(),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
},
|
||||
Router {
|
||||
id: generate_id(),
|
||||
name: "second-router".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/app2".to_string(),
|
||||
application_name: app_name_2.clone(),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
},
|
||||
Router {
|
||||
id: generate_id(),
|
||||
name: "third-router".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/app3".to_string(),
|
||||
application_name: app_name_3.clone(),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
},
|
||||
],
|
||||
databases: vec![
|
||||
@@ -484,19 +486,24 @@ pub fn environment_3_apps_3_routers_3_databases(
|
||||
}
|
||||
}
|
||||
|
||||
pub fn working_minimal_environment(context: &Context, organization_id: &str, test_domain: &str) -> Environment {
|
||||
pub fn working_minimal_environment(context: &Context, test_domain: &str) -> Environment {
|
||||
let suffix = generate_id();
|
||||
let application_id = generate_id();
|
||||
let application_name = format!("{}-{}", "simple-app".to_string(), &suffix);
|
||||
let router_id = generate_id();
|
||||
let router_name = "main".to_string();
|
||||
let application_domain = format!("{}.{}", application_id, test_domain);
|
||||
let application_domain = format!(
|
||||
"{}.{}.{}",
|
||||
application_id,
|
||||
context.cluster_id().to_string(),
|
||||
test_domain
|
||||
);
|
||||
Environment {
|
||||
execution_id: context.execution_id().to_string(),
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
applications: vec![Application {
|
||||
id: application_id,
|
||||
@@ -542,15 +549,26 @@ pub fn working_minimal_environment(context: &Context, organization_id: &str, tes
|
||||
path: "/".to_string(),
|
||||
application_name: format!("{}-{}", "simple-app".to_string(), &suffix),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
}],
|
||||
databases: vec![],
|
||||
clone_from_environment_id: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn environment_only_http_server_router_with_sticky_session(context: &Context, test_domain: &str) -> Environment {
|
||||
let mut env = environment_only_http_server_router(context, test_domain.clone());
|
||||
|
||||
for mut router in &mut env.routers {
|
||||
router.sticky_sessions_enabled = true;
|
||||
}
|
||||
|
||||
env.clone()
|
||||
}
|
||||
|
||||
pub fn environnement_2_app_2_routers_1_psql(
|
||||
context: &Context,
|
||||
organization_id: &str,
|
||||
|
||||
test_domain: &str,
|
||||
database_instance_type: &str,
|
||||
database_disk_type: &str,
|
||||
@@ -573,7 +591,7 @@ pub fn environnement_2_app_2_routers_1_psql(
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
databases: vec![Database {
|
||||
kind: DatabaseKind::Postgresql,
|
||||
@@ -696,33 +714,35 @@ pub fn environnement_2_app_2_routers_1_psql(
|
||||
id: generate_id(),
|
||||
name: "main".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), &test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/".to_string(),
|
||||
application_name: application_name1.to_string(),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
},
|
||||
Router {
|
||||
id: generate_id(),
|
||||
name: "second-router".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), &test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/coco".to_string(),
|
||||
application_name: application_name2.to_string(),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
},
|
||||
],
|
||||
clone_from_environment_id: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn non_working_environment(context: &Context, organization_id: &str, test_domain: &str) -> Environment {
|
||||
let mut environment = working_minimal_environment(context, organization_id, test_domain);
|
||||
pub fn non_working_environment(context: &Context, test_domain: &str) -> Environment {
|
||||
let mut environment = working_minimal_environment(context, test_domain);
|
||||
|
||||
environment.applications = environment
|
||||
.applications
|
||||
@@ -740,14 +760,14 @@ pub fn non_working_environment(context: &Context, organization_id: &str, test_do
|
||||
|
||||
// echo app environment is an environment that contains http-echo container (forked from hashicorp)
|
||||
// ECHO_TEXT var will be the content of the application root path
|
||||
pub fn echo_app_environment(context: &Context, organization_id: &str, test_domain: &str) -> Environment {
|
||||
pub fn echo_app_environment(context: &Context, test_domain: &str) -> Environment {
|
||||
let suffix = generate_id();
|
||||
Environment {
|
||||
execution_id: context.execution_id().to_string(),
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
applications: vec![Application {
|
||||
id: generate_id(),
|
||||
@@ -789,27 +809,28 @@ pub fn echo_app_environment(context: &Context, organization_id: &str, test_domai
|
||||
id: generate_id(),
|
||||
name: "main".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id().to_string(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/".to_string(),
|
||||
application_name: format!("{}-{}", "echo-app".to_string(), &suffix),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
}],
|
||||
databases: vec![],
|
||||
clone_from_environment_id: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn environment_only_http_server(context: &Context, organization_id: &str) -> Environment {
|
||||
pub fn environment_only_http_server(context: &Context) -> Environment {
|
||||
let suffix = generate_id();
|
||||
Environment {
|
||||
execution_id: context.execution_id().to_string(),
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
applications: vec![Application {
|
||||
id: generate_id(),
|
||||
@@ -851,14 +872,14 @@ pub fn environment_only_http_server(context: &Context, organization_id: &str) ->
|
||||
}
|
||||
}
|
||||
|
||||
pub fn environment_only_http_server_router(context: &Context, organization_id: &str, test_domain: &str) -> Environment {
|
||||
pub fn environment_only_http_server_router(context: &Context, test_domain: &str) -> Environment {
|
||||
let suffix = generate_id();
|
||||
Environment {
|
||||
execution_id: context.execution_id().to_string(),
|
||||
id: generate_id(),
|
||||
owner_id: generate_id(),
|
||||
project_id: generate_id(),
|
||||
organization_id: organization_id.to_string(),
|
||||
organization_id: context.organization_id().to_string(),
|
||||
action: Action::Create,
|
||||
applications: vec![Application {
|
||||
id: generate_id(),
|
||||
@@ -898,19 +919,53 @@ pub fn environment_only_http_server_router(context: &Context, organization_id: &
|
||||
id: generate_id(),
|
||||
name: "main".to_string(),
|
||||
action: Action::Create,
|
||||
default_domain: format!("{}.{}", generate_id(), test_domain),
|
||||
default_domain: format!("{}.{}.{}", generate_id(), context.cluster_id(), test_domain),
|
||||
public_port: 443,
|
||||
custom_domains: vec![],
|
||||
routes: vec![Route {
|
||||
path: "/".to_string(),
|
||||
application_name: format!("{}-{}", "mini-http".to_string(), &suffix),
|
||||
}],
|
||||
sticky_sessions_enabled: false,
|
||||
}],
|
||||
databases: vec![],
|
||||
clone_from_environment_id: None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Test if stick session are activated on given routers via cookie.
|
||||
pub fn routers_sessions_are_sticky(routers: Vec<Router>) -> bool {
|
||||
let mut is_ok = true;
|
||||
let http_client = reqwest::blocking::Client::builder()
|
||||
.danger_accept_invalid_certs(true) // this test ignores certificate validity (not its purpose)
|
||||
.build()
|
||||
.expect("Cannot build reqwest client");
|
||||
|
||||
for router in routers.iter() {
|
||||
for route in router.routes.iter() {
|
||||
let http_request_result = http_client
|
||||
.get(format!("https://{}{}", router.default_domain, route.path))
|
||||
.send();
|
||||
|
||||
if http_request_result.is_err() {
|
||||
return false;
|
||||
}
|
||||
|
||||
let http_response = http_request_result.expect("cannot retrieve HTTP request result");
|
||||
|
||||
is_ok &= match http_response.headers().get("Set-Cookie") {
|
||||
None => false,
|
||||
Some(value) => match value.to_str() {
|
||||
Err(_) => false,
|
||||
Ok(s) => s.contains("INGRESSCOOKIE_QOVERY=") && s.contains("Max-Age=85400"),
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
is_ok
|
||||
}
|
||||
|
||||
pub fn test_db(
|
||||
context: Context,
|
||||
logger: Box<dyn Logger>,
|
||||
@@ -934,10 +989,14 @@ pub fn test_db(
|
||||
let database_password = generate_id();
|
||||
let db_kind_str = db_kind.name().to_string();
|
||||
let database_host = format!(
|
||||
"{}-{}.{}",
|
||||
"{}-{}.{}.{}",
|
||||
db_kind_str.clone(),
|
||||
generate_id(),
|
||||
secrets.clone().DEFAULT_TEST_DOMAIN.unwrap()
|
||||
context.cluster_id(),
|
||||
secrets
|
||||
.clone()
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
);
|
||||
let dyn_db_fqdn = match is_public.clone() {
|
||||
true => database_host.clone(),
|
||||
@@ -1018,26 +1077,11 @@ pub fn test_db(
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
}
|
||||
|
||||
let kube_cluster_id = match provider_kind {
|
||||
Kind::Aws => secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set"),
|
||||
Kind::Do => secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
Kind::Scw => secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set"),
|
||||
};
|
||||
|
||||
match database_mode.clone() {
|
||||
DatabaseMode::CONTAINER => {
|
||||
match get_pvc(
|
||||
context.clone(),
|
||||
provider_kind.clone(),
|
||||
kube_cluster_id.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
@@ -1049,8 +1093,8 @@ pub fn test_db(
|
||||
};
|
||||
|
||||
match get_svc(
|
||||
context.clone(),
|
||||
provider_kind.clone(),
|
||||
kube_cluster_id.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
@@ -1074,12 +1118,7 @@ pub fn test_db(
|
||||
};
|
||||
}
|
||||
DatabaseMode::MANAGED => {
|
||||
match get_svc(
|
||||
provider_kind.clone(),
|
||||
kube_cluster_id.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_svc(context, provider_kind.clone(), environment.clone(), secrets.clone()) {
|
||||
Ok(svc) => {
|
||||
let service = svc
|
||||
.items
|
||||
@@ -1126,16 +1165,12 @@ pub fn get_environment_test_kubernetes<'a>(
|
||||
|
||||
match provider_kind {
|
||||
Kind::Aws => {
|
||||
let cluster_id = secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_KUBE_TEST_CLUSTER_ID is not set");
|
||||
k = Box::new(
|
||||
EKS::new(
|
||||
context.clone(),
|
||||
cluster_id.as_str(),
|
||||
context.cluster_id(),
|
||||
uuid::Uuid::new_v4(),
|
||||
format!("qovery-{}", cluster_id.as_str()).as_str(),
|
||||
format!("qovery-{}", context.cluster_id()).as_str(),
|
||||
AWS_KUBERNETES_VERSION,
|
||||
secrets
|
||||
.AWS_DEFAULT_REGION
|
||||
@@ -1152,16 +1187,12 @@ pub fn get_environment_test_kubernetes<'a>(
|
||||
);
|
||||
}
|
||||
Kind::Do => {
|
||||
let cluster_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set");
|
||||
k = Box::new(
|
||||
DOKS::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
context.cluster_id().to_string(),
|
||||
uuid::Uuid::new_v4(),
|
||||
format!("qovery-{}", cluster_id),
|
||||
format!("qovery-{}", context.cluster_id()),
|
||||
DO_KUBERNETES_VERSION.to_string(),
|
||||
Region::from_str(
|
||||
secrets
|
||||
@@ -1174,23 +1205,19 @@ pub fn get_environment_test_kubernetes<'a>(
|
||||
cloud_provider,
|
||||
dns_provider,
|
||||
DO::kubernetes_nodes(),
|
||||
DO::kubernetes_cluster_options(secrets.clone(), Option::from(cluster_id.to_string())),
|
||||
DO::kubernetes_cluster_options(secrets.clone(), Option::from(context.cluster_id().to_string())),
|
||||
logger,
|
||||
)
|
||||
.unwrap(),
|
||||
);
|
||||
}
|
||||
Kind::Scw => {
|
||||
let cluster_id = secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set");
|
||||
k = Box::new(
|
||||
Kapsule::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
context.cluster_id().to_string(),
|
||||
uuid::Uuid::new_v4(),
|
||||
format!("qovery-{}", cluster_id),
|
||||
format!("qovery-{}", context.cluster_id()),
|
||||
SCW_KUBERNETES_VERSION.to_string(),
|
||||
Zone::from_str(
|
||||
secrets
|
||||
|
||||
@@ -56,12 +56,7 @@ use qovery_engine::object_storage::ObjectStorage;
|
||||
use qovery_engine::runtime::block_on;
|
||||
use time::Instant;
|
||||
|
||||
pub fn context() -> Context {
|
||||
// TODO(benjaminch): Migrate this
|
||||
context_full("id-for-test", "name-for-test")
|
||||
}
|
||||
|
||||
pub fn context_full(organization_id: &str, cluster_id: &str) -> Context {
|
||||
pub fn context(organization_id: &str, cluster_id: &str) -> Context {
|
||||
let organization_id = organization_id.to_string();
|
||||
let cluster_id = cluster_id.to_string();
|
||||
let execution_id = execution_id();
|
||||
@@ -481,16 +476,17 @@ fn curl_path(path: &str) -> bool {
|
||||
}
|
||||
|
||||
pub fn kubernetes_config_path(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
workspace_directory: &str,
|
||||
kubernetes_cluster_id: &str,
|
||||
secrets: FuncTestsSecrets,
|
||||
) -> Result<String, SimpleError> {
|
||||
let kubernetes_config_bucket_name = format!("qovery-kubeconfigs-{}", kubernetes_cluster_id);
|
||||
let kubernetes_config_object_key = format!("{}.yaml", kubernetes_cluster_id);
|
||||
let kubernetes_config_file_path = format!("{}/kubernetes_config_{}", workspace_directory, kubernetes_cluster_id);
|
||||
let kubernetes_config_bucket_name = format!("qovery-kubeconfigs-{}", context.cluster_id());
|
||||
let kubernetes_config_object_key = format!("{}.yaml", context.cluster_id());
|
||||
let kubernetes_config_file_path = format!("{}/kubernetes_config_{}", workspace_directory, context.cluster_id());
|
||||
|
||||
let _ = get_kubernetes_config_file(
|
||||
context,
|
||||
provider_kind,
|
||||
kubernetes_config_bucket_name,
|
||||
kubernetes_config_object_key,
|
||||
@@ -502,6 +498,7 @@ pub fn kubernetes_config_path(
|
||||
}
|
||||
|
||||
fn get_kubernetes_config_file<P>(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
kubernetes_config_bucket_name: String,
|
||||
kubernetes_config_object_key: String,
|
||||
@@ -540,7 +537,7 @@ where
|
||||
match Region::from_str(region_raw.as_str()) {
|
||||
Ok(region) => {
|
||||
let spaces = Spaces::new(
|
||||
context(),
|
||||
context.clone(),
|
||||
"fake".to_string(),
|
||||
"fake".to_string(),
|
||||
secrets
|
||||
@@ -792,8 +789,8 @@ fn aws_s3_get_object(
|
||||
}
|
||||
|
||||
pub fn is_pod_restarted_env(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
kube_cluster_id: &str,
|
||||
environment_check: Environment,
|
||||
pod_to_check: &str,
|
||||
secrets: FuncTestsSecrets,
|
||||
@@ -804,7 +801,7 @@ pub fn is_pod_restarted_env(
|
||||
&environment_check.id.clone(),
|
||||
);
|
||||
|
||||
let kubernetes_config = kubernetes_config_path(provider_kind.clone(), "/tmp", kube_cluster_id, secrets.clone());
|
||||
let kubernetes_config = kubernetes_config_path(context, provider_kind.clone(), "/tmp", secrets.clone());
|
||||
|
||||
match kubernetes_config {
|
||||
Ok(path) => {
|
||||
@@ -827,10 +824,10 @@ pub fn is_pod_restarted_env(
|
||||
}
|
||||
|
||||
pub fn get_pods(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
environment_check: Environment,
|
||||
pod_to_check: &str,
|
||||
kube_cluster_id: &str,
|
||||
secrets: FuncTestsSecrets,
|
||||
) -> Result<KubernetesList<KubernetesPod>, SimpleError> {
|
||||
let namespace_name = format!(
|
||||
@@ -839,7 +836,7 @@ pub fn get_pods(
|
||||
&environment_check.id.clone(),
|
||||
);
|
||||
|
||||
let kubernetes_config = kubernetes_config_path(provider_kind.clone(), "/tmp", kube_cluster_id, secrets.clone());
|
||||
let kubernetes_config = kubernetes_config_path(context, provider_kind.clone(), "/tmp", secrets.clone());
|
||||
|
||||
cmd::kubectl::kubectl_exec_get_pods(
|
||||
kubernetes_config.unwrap().as_str(),
|
||||
@@ -900,8 +897,8 @@ pub fn generate_cluster_id(region: &str) -> String {
|
||||
}
|
||||
|
||||
pub fn get_pvc(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
kube_cluster_id: &str,
|
||||
environment_check: Environment,
|
||||
secrets: FuncTestsSecrets,
|
||||
) -> Result<PVC, SimpleError> {
|
||||
@@ -911,7 +908,7 @@ pub fn get_pvc(
|
||||
&environment_check.id.clone(),
|
||||
);
|
||||
|
||||
let kubernetes_config = kubernetes_config_path(provider_kind.clone(), "/tmp", kube_cluster_id, secrets.clone());
|
||||
let kubernetes_config = kubernetes_config_path(context, provider_kind.clone(), "/tmp", secrets.clone());
|
||||
|
||||
match kubernetes_config {
|
||||
Ok(path) => {
|
||||
@@ -929,8 +926,8 @@ pub fn get_pvc(
|
||||
}
|
||||
|
||||
pub fn get_svc(
|
||||
context: Context,
|
||||
provider_kind: Kind,
|
||||
kube_cluster_id: &str,
|
||||
environment_check: Environment,
|
||||
secrets: FuncTestsSecrets,
|
||||
) -> Result<SVC, SimpleError> {
|
||||
@@ -940,7 +937,7 @@ pub fn get_svc(
|
||||
&environment_check.id.clone(),
|
||||
);
|
||||
|
||||
let kubernetes_config = kubernetes_config_path(provider_kind.clone(), "/tmp", kube_cluster_id, secrets.clone());
|
||||
let kubernetes_config = kubernetes_config_path(context, provider_kind.clone(), "/tmp", secrets.clone());
|
||||
|
||||
match kubernetes_config {
|
||||
Ok(path) => {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::common::Infrastructure;
|
||||
use self::test_utilities::common::{routers_sessions_are_sticky, Infrastructure};
|
||||
use self::test_utilities::utilities::{
|
||||
engine_run_test, generate_id, get_pods, get_pvc, is_pod_restarted_env, logger, FuncTestsSecrets,
|
||||
};
|
||||
@@ -28,16 +28,22 @@ fn deploy_a_working_environment_with_no_router_on_aws_eks() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -79,16 +85,22 @@ fn deploy_a_working_environment_and_pause_it_eks() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -106,14 +118,10 @@ fn deploy_a_working_environment_and_pause_it_eks() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Aws,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -127,29 +135,16 @@ fn deploy_a_working_environment_and_pause_it_eks() {
|
||||
|
||||
// Check that we have actually 0 pods running for this app
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Aws,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
assert_eq!(ret.unwrap().items.is_empty(), true);
|
||||
|
||||
let kubernetes_config = kubernetes_config_path(
|
||||
Kind::Aws,
|
||||
"/tmp",
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_ACCESS_KEY_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
let kubernetes_config = kubernetes_config_path(context.clone(), Kind::Aws, "/tmp", secrets.clone());
|
||||
let mut pdbs = kubernetes_get_all_pdbs(
|
||||
kubernetes_config.as_ref().expect("Unable to get kubeconfig").clone(),
|
||||
vec![
|
||||
@@ -192,14 +187,10 @@ fn deploy_a_working_environment_and_pause_it_eks() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Aws,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -264,17 +255,23 @@ fn deploy_a_not_working_environment_with_no_router_on_aws_eks() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -316,16 +313,22 @@ fn build_with_buildpacks_and_deploy_a_working_environment() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -385,16 +388,22 @@ fn build_worker_with_buildpacks_and_deploy_a_working_environment() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -413,8 +422,8 @@ fn build_worker_with_buildpacks_and_deploy_a_working_environment() {
|
||||
publicly_accessible: true,
|
||||
protocol: Protocol::HTTP,
|
||||
}];
|
||||
app.commit_id = "4f35f4ab3e98426c5a3eaa91e788ff8ab466f19a".to_string();
|
||||
app.branch = "buildpack-process".to_string();
|
||||
app.commit_id = "f59237d603829636138e2f22a0549e33b5dd6e1f".to_string();
|
||||
app.branch = "simple-node-app".to_string();
|
||||
app.dockerfile_path = None;
|
||||
app
|
||||
})
|
||||
@@ -454,16 +463,22 @@ fn deploy_a_working_environment_with_domain() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -503,18 +518,24 @@ fn deploy_a_working_environment_with_storage_on_aws_eks() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -551,16 +572,7 @@ fn deploy_a_working_environment_with_storage_on_aws_eks() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Aws,
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Aws, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -590,19 +602,25 @@ fn redeploy_same_app_with_ebs() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -642,16 +660,7 @@ fn redeploy_same_app_with_ebs() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Aws,
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Aws, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -661,12 +670,8 @@ fn redeploy_same_app_with_ebs() {
|
||||
|
||||
let app_name = format!("{}-0", &environment_check1.applications[0].name);
|
||||
let (_, number) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Aws,
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment_check1,
|
||||
app_name.clone().as_str(),
|
||||
secrets.clone(),
|
||||
@@ -679,12 +684,8 @@ fn redeploy_same_app_with_ebs() {
|
||||
};
|
||||
|
||||
let (_, number2) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Aws,
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment_check2,
|
||||
app_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -711,21 +712,26 @@ fn deploy_a_not_working_environment_and_after_working_environment() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
// let mut context_envs = generate_contexts_and_environments(3, test_utilities::aws::working_minimal_environment);
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -793,15 +799,21 @@ fn deploy_ok_fail_fail_ok_environment() {
|
||||
|
||||
// working env
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -896,16 +908,22 @@ fn deploy_a_non_working_environment_with_no_failover_on_aws_eks() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
@@ -946,43 +964,31 @@ fn deploy_a_non_working_environment_with_a_working_failover_on_aws_eks() {
|
||||
let _enter = span.enter();
|
||||
|
||||
// context for non working environment
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(&context, test_domain.as_str());
|
||||
// context for deletion
|
||||
let context_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::working_minimal_environment(
|
||||
&context_deletion,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::working_minimal_environment(&context_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
let ea_delete = EnvironmentAction::Environment(delete_env.clone());
|
||||
let ea = EnvironmentAction::EnvironmentWithFailover(environment.clone(), failover_environment.clone());
|
||||
@@ -1010,56 +1016,39 @@ fn deploy_2_non_working_environments_with_2_working_failovers_on_aws_eks() {
|
||||
init();
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
// context for non working environment
|
||||
let context_failover_1 = context();
|
||||
let context_failover_1 = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let context_failover_2 = context_failover_1.clone_not_same_execution_id();
|
||||
|
||||
let context_first_fail_deployment_1 = context_failover_1.clone_not_same_execution_id();
|
||||
let context_second_fail_deployment_2 = context_failover_1.clone_not_same_execution_id();
|
||||
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let failover_environment_1 = test_utilities::common::echo_app_environment(
|
||||
&context_failover_1,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let fail_app_1 = test_utilities::common::non_working_environment(
|
||||
&context_first_fail_deployment_1,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut failover_environment_2 = test_utilities::common::echo_app_environment(
|
||||
&context_failover_2,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let fail_app_2 = test_utilities::common::non_working_environment(
|
||||
&context_second_fail_deployment_2,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment_1 =
|
||||
test_utilities::common::echo_app_environment(&context_failover_1, test_domain.as_str());
|
||||
let fail_app_1 =
|
||||
test_utilities::common::non_working_environment(&context_first_fail_deployment_1, test_domain.as_str());
|
||||
let mut failover_environment_2 =
|
||||
test_utilities::common::echo_app_environment(&context_failover_2, test_domain.as_str());
|
||||
let fail_app_2 =
|
||||
test_utilities::common::non_working_environment(&context_second_fail_deployment_2, test_domain.as_str());
|
||||
|
||||
failover_environment_2.applications = failover_environment_2
|
||||
.applications
|
||||
@@ -1074,15 +1063,7 @@ fn deploy_2_non_working_environments_with_2_working_failovers_on_aws_eks() {
|
||||
|
||||
// context for deletion
|
||||
let context_deletion = context_failover_1.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::echo_app_environment(
|
||||
&context_deletion,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env = test_utilities::common::echo_app_environment(&context_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
let ea_delete = EnvironmentAction::Environment(delete_env.clone());
|
||||
|
||||
@@ -1120,43 +1101,31 @@ fn deploy_a_non_working_environment_with_a_non_working_failover_on_aws_eks() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::non_working_environment(
|
||||
&context_for_deletion,
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID is not set")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::non_working_environment(&context_for_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
// environment action initialize
|
||||
let ea_delete = EnvironmentAction::Environment(delete_env.clone());
|
||||
@@ -1176,3 +1145,64 @@ fn deploy_a_non_working_environment_with_a_non_working_failover_on_aws_eks() {
|
||||
return test_name.to_string();
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "test-aws-self-hosted")]
|
||||
#[named]
|
||||
#[test]
|
||||
fn aws_eks_deploy_a_working_environment_with_sticky_session() {
|
||||
let test_name = function_name!();
|
||||
engine_run_test(|| {
|
||||
init();
|
||||
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.AWS_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_ORGANIZATION_ID in secrets")
|
||||
.as_str(),
|
||||
secrets
|
||||
.AWS_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("AWS_TEST_CLUSTER_ID is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::environment_only_http_server_router_with_sticky_session(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
|
||||
let mut environment_for_delete = environment.clone();
|
||||
environment_for_delete.action = Action::Delete;
|
||||
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
let env_action_for_delete = EnvironmentAction::Environment(environment_for_delete.clone());
|
||||
|
||||
match environment.deploy_environment(Kind::Aws, &context, &env_action, logger.clone()) {
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
// checking if cookie is properly set on the app
|
||||
assert!(routers_sessions_are_sticky(environment.routers.clone()));
|
||||
|
||||
match environment_for_delete.delete_environment(Kind::Aws, &context_for_delete, &env_action_for_delete, logger)
|
||||
{
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
test_name.to_string()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::aws::{AWS_KUBERNETES_MAJOR_VERSION, AWS_KUBERNETES_MINOR_VERSION};
|
||||
use self::test_utilities::utilities::{context, engine_run_test, logger, FuncTestsSecrets};
|
||||
use self::test_utilities::utilities::{
|
||||
context, engine_run_test, generate_cluster_id, generate_id, logger, FuncTestsSecrets,
|
||||
};
|
||||
use ::function_name::named;
|
||||
use qovery_engine::cloud_provider::aws::kubernetes::VpcQoveryNetworkMode;
|
||||
use qovery_engine::cloud_provider::aws::kubernetes::VpcQoveryNetworkMode::{WithNatGateways, WithoutNatGateways};
|
||||
@@ -22,7 +24,7 @@ fn create_and_destroy_eks_cluster(
|
||||
cluster_test(
|
||||
test_name,
|
||||
Kind::Aws,
|
||||
context(),
|
||||
context(generate_id().as_str(), generate_cluster_id(region.clone()).as_str()),
|
||||
logger(),
|
||||
region,
|
||||
secrets,
|
||||
|
||||
@@ -10,11 +10,11 @@ use test_utilities::utilities::{context, engine_run_test, generate_cluster_id, g
|
||||
#[named]
|
||||
#[test]
|
||||
fn create_upgrade_and_destroy_eks_cluster_with_env_in_eu_west_3() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let region = "eu-west-3";
|
||||
let organization_id = generate_id();
|
||||
let cluster_id = generate_cluster_id(region);
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let cluster_domain = format!(
|
||||
"{}.{}",
|
||||
cluster_id.as_str(),
|
||||
@@ -25,11 +25,7 @@ fn create_upgrade_and_destroy_eks_cluster_with_env_in_eu_west_3() {
|
||||
.as_str()
|
||||
);
|
||||
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
organization_id.as_str(),
|
||||
cluster_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(&context, cluster_domain.as_str());
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
|
||||
engine_run_test(|| {
|
||||
|
||||
@@ -36,15 +36,20 @@ fn deploy_an_environment_with_3_databases_and_3_apps() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::environment_3_apps_3_routers_3_databases(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::environment_3_apps_3_routers_3_databases(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -93,15 +98,20 @@ fn deploy_an_environment_with_db_and_pause_it() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context,
|
||||
secrets
|
||||
.clone()
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
@@ -132,13 +142,10 @@ fn deploy_an_environment_with_db_and_pause_it() {
|
||||
// Check that we have actually 0 pods running for this db
|
||||
let app_name = format!("postgresql{}-0", environment.databases[0].name);
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
ProviderKind::Do,
|
||||
environment.clone(),
|
||||
app_name.clone().as_str(),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -171,10 +178,19 @@ fn postgresql_failover_dev_environment_with_all_options() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let test_domain = secrets
|
||||
.clone()
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
@@ -182,10 +198,6 @@ fn postgresql_failover_dev_environment_with_all_options() {
|
||||
|
||||
let environment = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
DO_SELF_HOSTED_DATABASE_INSTANCE_TYPE,
|
||||
DO_SELF_HOSTED_DATABASE_DISK_TYPE,
|
||||
@@ -212,10 +224,6 @@ fn postgresql_failover_dev_environment_with_all_options() {
|
||||
.collect::<Vec<qovery_engine::models::Application>>();
|
||||
let mut environment_delete = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context_for_deletion,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
DO_SELF_HOSTED_DATABASE_INSTANCE_TYPE,
|
||||
DO_SELF_HOSTED_DATABASE_DISK_TYPE,
|
||||
@@ -237,11 +245,8 @@ fn postgresql_failover_dev_environment_with_all_options() {
|
||||
// TO CHECK: DATABASE SHOULDN'T BE RESTARTED AFTER A REDEPLOY
|
||||
let database_name = format!("postgresql-{}-0", &environment_check.databases[0].name);
|
||||
match is_pod_restarted_env(
|
||||
context.clone(),
|
||||
ProviderKind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment_check.clone(),
|
||||
database_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -256,11 +261,8 @@ fn postgresql_failover_dev_environment_with_all_options() {
|
||||
};
|
||||
// TO CHECK: DATABASE SHOULDN'T BE RESTARTED AFTER A REDEPLOY EVEN IF FAIL
|
||||
match is_pod_restarted_env(
|
||||
context.clone(),
|
||||
ProviderKind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment_check.clone(),
|
||||
database_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -297,8 +299,17 @@ fn postgresql_deploy_a_working_development_environment_with_all_options() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
@@ -307,10 +318,6 @@ fn postgresql_deploy_a_working_development_environment_with_all_options() {
|
||||
|
||||
let environment = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
DO_SELF_HOSTED_DATABASE_INSTANCE_TYPE,
|
||||
DO_SELF_HOSTED_DATABASE_DISK_TYPE,
|
||||
@@ -319,10 +326,6 @@ fn postgresql_deploy_a_working_development_environment_with_all_options() {
|
||||
//let env_to_check = environment.clone();
|
||||
let mut environment_delete = test_utilities::common::environnement_2_app_2_routers_1_psql(
|
||||
&context_for_deletion,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
DO_SELF_HOSTED_DATABASE_INSTANCE_TYPE,
|
||||
DO_SELF_HOSTED_DATABASE_DISK_TYPE,
|
||||
@@ -380,16 +383,21 @@ fn postgresql_deploy_a_working_environment_and_redeploy() {
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_redeploy = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.clone()
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
@@ -490,11 +498,8 @@ fn postgresql_deploy_a_working_environment_and_redeploy() {
|
||||
// TO CHECK: DATABASE SHOULDN'T BE RESTARTED AFTER A REDEPLOY
|
||||
let database_name = format!("postgresql-{}-0", &environment_check.databases[0].name);
|
||||
match is_pod_restarted_env(
|
||||
context.clone(),
|
||||
ProviderKind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment_check,
|
||||
database_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -554,14 +559,20 @@ fn test_postgresql_configuration(
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_postgresql_v10_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -576,14 +587,20 @@ fn private_postgresql_v10_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_postgresql_v10_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -598,14 +615,20 @@ fn public_postgresql_v10_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_postgresql_v11_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -620,14 +643,20 @@ fn private_postgresql_v11_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_postgresql_v11_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -641,14 +670,20 @@ fn public_postgresql_v11_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_postgresql_v12_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -662,14 +697,20 @@ fn private_postgresql_v12_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_postgresql_v12_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -683,14 +724,20 @@ fn public_postgresql_v12_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_postgresql_v13_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -704,14 +751,20 @@ fn private_postgresql_v13_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_postgresql_v13_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -757,14 +810,20 @@ fn test_mongodb_configuration(
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mongodb_v3_6_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -779,14 +838,20 @@ fn private_mongodb_v3_6_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mongodb_v3_6_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -801,14 +866,20 @@ fn public_mongodb_v3_6_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mongodb_v4_0_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -823,14 +894,20 @@ fn private_mongodb_v4_0_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mongodb_v4_0_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -845,14 +922,20 @@ fn public_mongodb_v4_0_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mongodb_v4_2_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -866,14 +949,20 @@ fn private_mongodb_v4_2_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mongodb_v4_2_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -887,14 +976,20 @@ fn public_mongodb_v4_2_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mongodb_v4_4_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -908,14 +1003,20 @@ fn private_mongodb_v4_4_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mongodb_v4_4_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -961,14 +1062,20 @@ fn test_mysql_configuration(
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mysql_v5_7_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -983,14 +1090,20 @@ fn private_mysql_v5_7_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mysql_v5_7_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1005,14 +1118,20 @@ fn public_mysql_v5_7_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_mysql_v8_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1026,14 +1145,20 @@ fn private_mysql_v8_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_mysql_v8_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1081,14 +1206,20 @@ fn test_redis_configuration(
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_redis_v5_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1103,14 +1234,20 @@ fn private_redis_v5_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_redis_v5_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1125,14 +1262,20 @@ fn public_redis_v5_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn private_redis_v6_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -1146,14 +1289,20 @@ fn private_redis_v6_deploy_a_working_dev_environment() {
|
||||
#[named]
|
||||
#[test]
|
||||
fn public_redis_v6_deploy_a_working_dev_environment() {
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
|
||||
let environment = working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::common::routers_sessions_are_sticky;
|
||||
use self::test_utilities::digitalocean::{clean_environments, DO_TEST_REGION};
|
||||
use self::test_utilities::utilities::{
|
||||
engine_run_test, generate_id, get_pods, get_pvc, init, is_pod_restarted_env, logger, FuncTestsSecrets,
|
||||
@@ -27,16 +28,21 @@ fn digitalocean_doks_deploy_a_working_environment_with_no_router() {
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -84,16 +90,21 @@ fn digitalocean_doks_deploy_a_not_working_environment_with_no_router() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -140,15 +151,20 @@ fn digitalocean_doks_deploy_a_working_environment_and_pause() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -166,13 +182,10 @@ fn digitalocean_doks_deploy_a_working_environment_and_pause() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Do,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -186,13 +199,10 @@ fn digitalocean_doks_deploy_a_working_environment_and_pause() {
|
||||
|
||||
// Check that we have actually 0 pods running for this app
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Do,
|
||||
environment.clone(),
|
||||
selector.clone().as_str(),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -207,13 +217,10 @@ fn digitalocean_doks_deploy_a_working_environment_and_pause() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Do,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -246,15 +253,20 @@ fn digitalocean_doks_build_with_buildpacks_and_deploy_a_working_environment() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -319,15 +331,20 @@ fn digitalocean_doks_deploy_a_working_environment_with_domain() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -373,16 +390,21 @@ fn digitalocean_doks_deploy_a_working_environment_with_storage() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -419,15 +441,7 @@ fn digitalocean_doks_deploy_a_working_environment_with_storage() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Do, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -461,17 +475,22 @@ fn digitalocean_doks_redeploy_same_app() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -512,15 +531,7 @@ fn digitalocean_doks_redeploy_same_app() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Do, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -530,11 +541,8 @@ fn digitalocean_doks_redeploy_same_app() {
|
||||
|
||||
let app_name = format!("{}-0", &environment_check1.applications[0].name);
|
||||
let (_, number) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment_check1,
|
||||
app_name.clone().as_str(),
|
||||
secrets.clone(),
|
||||
@@ -547,11 +555,8 @@ fn digitalocean_doks_redeploy_same_app() {
|
||||
};
|
||||
|
||||
let (_, number2) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Do,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
environment_check2,
|
||||
app_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -586,18 +591,23 @@ fn digitalocean_doks_deploy_a_not_working_environment_and_then_working_environme
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -668,16 +678,21 @@ fn digitalocean_doks_deploy_ok_fail_fail_ok_environment() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
// working env
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -778,14 +793,19 @@ fn digitalocean_doks_deploy_a_non_working_environment_with_no_failover() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -834,40 +854,29 @@ fn digitalocean_doks_deploy_a_non_working_environment_with_a_working_failover()
|
||||
let logger = logger();
|
||||
|
||||
// context for non working environment
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(&context, test_domain.as_str());
|
||||
|
||||
// context for deletion
|
||||
let context_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::working_minimal_environment(
|
||||
&context_deletion,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::working_minimal_environment(&context_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
|
||||
let env_action_delete = EnvironmentAction::Environment(delete_env.clone());
|
||||
@@ -910,39 +919,28 @@ fn digitalocean_doks_deploy_a_non_working_environment_with_a_non_working_failove
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set"),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::non_working_environment(
|
||||
&context_for_deletion,
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set"),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::non_working_environment(&context_for_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
|
||||
// environment action initialize
|
||||
@@ -973,3 +971,67 @@ fn digitalocean_doks_deploy_a_non_working_environment_with_a_non_working_failove
|
||||
test_name.to_string()
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "test-do-self-hosted")]
|
||||
#[named]
|
||||
#[test]
|
||||
fn digitalocean_doks_deploy_a_working_environment_with_sticky_session() {
|
||||
let test_name = function_name!();
|
||||
engine_run_test(|| {
|
||||
init();
|
||||
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID in secrets")
|
||||
.as_str(),
|
||||
secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::environment_only_http_server_router_with_sticky_session(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
|
||||
let mut environment_for_delete = environment.clone();
|
||||
environment_for_delete.action = Action::Delete;
|
||||
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
let env_action_for_delete = EnvironmentAction::Environment(environment_for_delete.clone());
|
||||
|
||||
match environment.deploy_environment(Kind::Do, &context, &env_action, logger.clone()) {
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
// checking cookie is properly set on the app
|
||||
assert!(routers_sessions_are_sticky(environment.routers.clone()));
|
||||
|
||||
match environment_for_delete.delete_environment(Kind::Do, &context_for_delete, &env_action_for_delete, logger) {
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
if let Err(e) = clean_environments(&context, vec![environment.clone()], secrets.clone(), DO_TEST_REGION) {
|
||||
warn!("cannot clean environments, error: {:?}", e);
|
||||
}
|
||||
|
||||
test_name.to_string()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,9 @@ extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::common::ClusterDomain;
|
||||
use self::test_utilities::digitalocean::{DO_KUBERNETES_MAJOR_VERSION, DO_KUBERNETES_MINOR_VERSION};
|
||||
use self::test_utilities::utilities::{context, engine_run_test, logger, FuncTestsSecrets};
|
||||
use self::test_utilities::utilities::{
|
||||
context, engine_run_test, generate_cluster_id, generate_id, logger, FuncTestsSecrets,
|
||||
};
|
||||
use ::function_name::named;
|
||||
use qovery_engine::cloud_provider::digitalocean::application::Region;
|
||||
use qovery_engine::cloud_provider::Kind;
|
||||
@@ -21,7 +23,7 @@ fn create_and_destroy_doks_cluster(
|
||||
cluster_test(
|
||||
test_name,
|
||||
Kind::Do,
|
||||
context(),
|
||||
context(generate_id().as_str(), generate_cluster_id(region.as_str()).as_str()),
|
||||
logger(),
|
||||
region.as_str(),
|
||||
secrets,
|
||||
|
||||
@@ -11,7 +11,7 @@ const TEST_REGION: Region = Region::Amsterdam3;
|
||||
#[test]
|
||||
fn test_delete_bucket_hard_delete_strategy() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
@@ -42,7 +42,7 @@ fn test_delete_bucket_hard_delete_strategy() {
|
||||
#[test]
|
||||
fn test_delete_bucket_empty_strategy() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
@@ -78,7 +78,7 @@ fn test_delete_bucket_empty_strategy() {
|
||||
#[test]
|
||||
fn test_create_bucket() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
@@ -109,7 +109,7 @@ fn test_create_bucket() {
|
||||
#[test]
|
||||
fn test_recreate_bucket() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
@@ -147,7 +147,7 @@ fn test_recreate_bucket() {
|
||||
#[test]
|
||||
fn test_put_file() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
@@ -193,7 +193,7 @@ fn test_put_file() {
|
||||
#[test]
|
||||
fn test_get_file() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let spaces = Spaces::new(
|
||||
|
||||
@@ -27,8 +27,18 @@ fn create_digitalocean_kubernetes_doks_test_cluster() {
|
||||
let span = span!(Level::INFO, "utility", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let organization_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set");
|
||||
let cluster_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set");
|
||||
let cluster_name = format!("qovery-{}", cluster_id.clone());
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let engine = DO::docker_cr_engine(&context, logger.clone());
|
||||
let session = engine.session().unwrap();
|
||||
let mut tx = session.transaction();
|
||||
@@ -37,12 +47,6 @@ fn create_digitalocean_kubernetes_doks_test_cluster() {
|
||||
let nodes = DO::kubernetes_nodes();
|
||||
let cloudflare = dns_provider_cloudflare(&context, ClusterDomain::Default);
|
||||
|
||||
let cluster_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set");
|
||||
let cluster_name = format!("qovery-{}", cluster_id.clone());
|
||||
|
||||
let kubernetes = DOKS::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
@@ -89,8 +93,18 @@ fn destroy_digitalocean_kubernetes_doks_test_cluster() {
|
||||
let span = span!(Level::INFO, "utility", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let organization_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_ORGANIZATION_ID is not set");
|
||||
let cluster_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set");
|
||||
let cluster_name = format!("qovery-{}", cluster_id.clone());
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let engine = DO::docker_cr_engine(&context, logger.clone());
|
||||
let session = engine.session().unwrap();
|
||||
let mut tx = session.transaction();
|
||||
@@ -99,12 +113,6 @@ fn destroy_digitalocean_kubernetes_doks_test_cluster() {
|
||||
let nodes = DO::kubernetes_nodes();
|
||||
let cloudflare = dns_provider_cloudflare(&context, ClusterDomain::Default);
|
||||
|
||||
let cluster_id = secrets
|
||||
.DIGITAL_OCEAN_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("DIGITAL_OCEAN_TEST_CLUSTER_ID is not set");
|
||||
let cluster_name = format!("qovery-{}", cluster_id);
|
||||
|
||||
let kubernetes = DOKS::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
|
||||
@@ -10,12 +10,12 @@ use test_utilities::utilities::{context, engine_run_test, generate_cluster_id, g
|
||||
#[named]
|
||||
#[test]
|
||||
fn create_upgrade_and_destroy_doks_cluster_with_env_in_ams_3() {
|
||||
let context = context();
|
||||
let logger = logger();
|
||||
let region = Region::Amsterdam3;
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let organization_id = generate_id();
|
||||
let cluster_id = generate_cluster_id(region.as_str());
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let cluster_domain = format!(
|
||||
"{}.{}",
|
||||
cluster_id.as_str(),
|
||||
@@ -26,11 +26,7 @@ fn create_upgrade_and_destroy_doks_cluster_with_env_in_ams_3() {
|
||||
.as_str()
|
||||
);
|
||||
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
organization_id.as_str(),
|
||||
cluster_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(&context, cluster_domain.as_str());
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
|
||||
engine_run_test(|| {
|
||||
|
||||
@@ -29,7 +29,7 @@ fn test_delete_image() {
|
||||
#[test]
|
||||
fn test_get_registry_namespace() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_default_project_id = secrets.SCALEWAY_DEFAULT_PROJECT_ID.unwrap_or("undefined".to_string());
|
||||
@@ -87,7 +87,7 @@ fn test_get_registry_namespace() {
|
||||
#[test]
|
||||
fn test_create_registry_namespace() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_default_project_id = secrets.SCALEWAY_DEFAULT_PROJECT_ID.unwrap_or("undefined".to_string());
|
||||
@@ -138,7 +138,7 @@ fn test_create_registry_namespace() {
|
||||
#[test]
|
||||
fn test_delete_registry_namespace() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_default_project_id = secrets.SCALEWAY_DEFAULT_PROJECT_ID.unwrap_or("undefined".to_string());
|
||||
@@ -184,7 +184,7 @@ fn test_delete_registry_namespace() {
|
||||
#[test]
|
||||
fn test_get_or_create_registry_namespace() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_default_project_id = secrets.SCALEWAY_DEFAULT_PROJECT_ID.unwrap_or("undefined".to_string());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,6 @@
|
||||
extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::common::routers_sessions_are_sticky;
|
||||
use self::test_utilities::scaleway::{clean_environments, SCW_TEST_ZONE};
|
||||
use self::test_utilities::utilities::{
|
||||
context, engine_run_test, generate_id, get_pods, get_pvc, init, is_pod_restarted_env, logger, FuncTestsSecrets,
|
||||
@@ -27,16 +28,22 @@ fn scaleway_kapsule_deploy_a_working_environment_with_no_router() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -85,17 +92,23 @@ fn scaleway_kapsule_deploy_a_not_working_environment_with_no_router() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -143,16 +156,22 @@ fn scaleway_kapsule_deploy_a_working_environment_and_pause() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -170,14 +189,10 @@ fn scaleway_kapsule_deploy_a_working_environment_and_pause() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -191,14 +206,10 @@ fn scaleway_kapsule_deploy_a_working_environment_and_pause() {
|
||||
|
||||
// Check that we have actually 0 pods running for this app
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -213,14 +224,10 @@ fn scaleway_kapsule_deploy_a_working_environment_and_pause() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -253,16 +260,22 @@ fn scaleway_kapsule_build_with_buildpacks_and_deploy_a_working_environment() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -328,16 +341,22 @@ fn scaleway_kapsule_deploy_a_working_environment_with_domain() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -382,18 +401,24 @@ fn scaleway_kapsule_deploy_a_working_environment_with_storage() {
|
||||
let span = span!(Level::INFO, "test", name = test_name,);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let logger = logger();
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -430,16 +455,7 @@ fn scaleway_kapsule_deploy_a_working_environment_with_storage() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Scw,
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Scw, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -464,7 +480,7 @@ fn scaleway_kapsule_deploy_a_working_environment_with_storage() {
|
||||
#[cfg(feature = "test-scw-self-hosted")]
|
||||
#[named]
|
||||
#[test]
|
||||
fn deploy_a_working_environment_and_pause_it_k() {
|
||||
fn deploy_a_working_environment_and_pause_it() {
|
||||
let test_name = function_name!();
|
||||
engine_run_test(|| {
|
||||
init();
|
||||
@@ -472,16 +488,22 @@ fn deploy_a_working_environment_and_pause_it_k() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID is not set")
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -499,14 +521,10 @@ fn deploy_a_working_environment_and_pause_it_k() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -520,14 +538,10 @@ fn deploy_a_working_environment_and_pause_it_k() {
|
||||
|
||||
// Check that we have actually 0 pods running for this app
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -542,14 +556,10 @@ fn deploy_a_working_environment_and_pause_it_k() {
|
||||
};
|
||||
|
||||
let ret = get_pods(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
environment.clone(),
|
||||
selector.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
secrets.clone(),
|
||||
);
|
||||
assert_eq!(ret.is_ok(), true);
|
||||
@@ -577,18 +587,24 @@ fn scaleway_kapsule_redeploy_same_app() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_bis = context.clone_not_same_execution_id();
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
|
||||
let mut environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.clone()
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
@@ -630,16 +646,7 @@ fn scaleway_kapsule_redeploy_same_app() {
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
match get_pvc(
|
||||
Kind::Scw,
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment.clone(),
|
||||
secrets.clone(),
|
||||
) {
|
||||
match get_pvc(context.clone(), Kind::Scw, environment.clone(), secrets.clone()) {
|
||||
Ok(pvc) => assert_eq!(
|
||||
pvc.items.expect("No items in pvc")[0].spec.resources.requests.storage,
|
||||
format!("{}Gi", storage_size)
|
||||
@@ -649,12 +656,8 @@ fn scaleway_kapsule_redeploy_same_app() {
|
||||
|
||||
let app_name = format!("{}-0", &environment_check1.applications[0].name);
|
||||
let (_, number) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment_check1,
|
||||
app_name.clone().as_str(),
|
||||
secrets.clone(),
|
||||
@@ -667,12 +670,8 @@ fn scaleway_kapsule_redeploy_same_app() {
|
||||
};
|
||||
|
||||
let (_, number2) = is_pod_restarted_env(
|
||||
context.clone(),
|
||||
Kind::Scw,
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set")
|
||||
.as_str(),
|
||||
environment_check2,
|
||||
app_name.as_str(),
|
||||
secrets.clone(),
|
||||
@@ -707,19 +706,25 @@ fn scaleway_kapsule_deploy_a_not_working_environment_and_then_working_environmen
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_not_working = context.clone_not_same_execution_id();
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
|
||||
// env part generation
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -792,15 +797,22 @@ fn scaleway_kapsule_deploy_ok_fail_fail_ok_environment() {
|
||||
let logger = logger();
|
||||
|
||||
// working env
|
||||
let context = context();
|
||||
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -901,15 +913,22 @@ fn scaleway_kapsule_deploy_a_non_working_environment_with_no_failover() {
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
@@ -958,43 +977,32 @@ fn scaleway_kapsule_deploy_a_non_working_environment_with_a_working_failover() {
|
||||
let logger = logger();
|
||||
|
||||
// context for non working environment
|
||||
let context = context();
|
||||
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::working_minimal_environment(&context, test_domain.as_str());
|
||||
|
||||
// context for deletion
|
||||
let context_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::working_minimal_environment(
|
||||
&context_deletion,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::working_minimal_environment(&context_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
|
||||
let env_action_delete = EnvironmentAction::Environment(delete_env.clone());
|
||||
@@ -1037,42 +1045,31 @@ fn scaleway_kapsule_deploy_a_non_working_environment_with_a_non_working_failover
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID")
|
||||
.as_str(),
|
||||
);
|
||||
let test_domain = secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets");
|
||||
|
||||
let environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let failover_environment = test_utilities::common::non_working_environment(
|
||||
&context,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
let failover_environment = test_utilities::common::non_working_environment(&context, test_domain.as_str());
|
||||
|
||||
let context_for_deletion = context.clone_not_same_execution_id();
|
||||
let mut delete_env = test_utilities::common::non_working_environment(
|
||||
&context_for_deletion,
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID")
|
||||
.as_str(),
|
||||
test_domain.as_str(),
|
||||
);
|
||||
let mut delete_env =
|
||||
test_utilities::common::non_working_environment(&context_for_deletion, test_domain.as_str());
|
||||
delete_env.action = Action::Delete;
|
||||
|
||||
// environment action initialize
|
||||
@@ -1103,3 +1100,68 @@ fn scaleway_kapsule_deploy_a_non_working_environment_with_a_non_working_failover
|
||||
test_name.to_string()
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "test-scw-self-hosted")]
|
||||
#[named]
|
||||
#[test]
|
||||
fn scaleway_kapsule_deploy_a_working_environment_with_sticky_session() {
|
||||
let test_name = function_name!();
|
||||
engine_run_test(|| {
|
||||
init();
|
||||
|
||||
let span = span!(Level::INFO, "test", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let logger = logger();
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let context = context(
|
||||
secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID is not set in secrets")
|
||||
.as_str(),
|
||||
secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
let context_for_delete = context.clone_not_same_execution_id();
|
||||
let environment = test_utilities::common::environment_only_http_server_router_with_sticky_session(
|
||||
&context,
|
||||
secrets
|
||||
.DEFAULT_TEST_DOMAIN
|
||||
.as_ref()
|
||||
.expect("DEFAULT_TEST_DOMAIN is not set in secrets")
|
||||
.as_str(),
|
||||
);
|
||||
|
||||
let mut environment_for_delete = environment.clone();
|
||||
environment_for_delete.action = Action::Delete;
|
||||
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
let env_action_for_delete = EnvironmentAction::Environment(environment_for_delete.clone());
|
||||
|
||||
match environment.deploy_environment(Kind::Scw, &context, &env_action, logger.clone()) {
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
// checking cookie is properly set on the app
|
||||
assert!(routers_sessions_are_sticky(environment.routers.clone()));
|
||||
|
||||
match environment_for_delete.delete_environment(Kind::Scw, &context_for_delete, &env_action_for_delete, logger)
|
||||
{
|
||||
TransactionResult::Ok => assert!(true),
|
||||
TransactionResult::Rollback(_) => assert!(false),
|
||||
TransactionResult::UnrecoverableError(_, _) => assert!(false),
|
||||
};
|
||||
|
||||
if let Err(e) = clean_environments(&context, vec![environment.clone()], secrets.clone(), SCW_TEST_ZONE) {
|
||||
warn!("cannot clean environments, error: {:?}", e);
|
||||
}
|
||||
|
||||
test_name.to_string()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
extern crate test_utilities;
|
||||
|
||||
use self::test_utilities::scaleway::{SCW_KUBERNETES_MAJOR_VERSION, SCW_KUBERNETES_MINOR_VERSION};
|
||||
use self::test_utilities::utilities::{context, engine_run_test, logger, FuncTestsSecrets};
|
||||
use self::test_utilities::utilities::{
|
||||
context, engine_run_test, generate_cluster_id, generate_id, logger, FuncTestsSecrets,
|
||||
};
|
||||
use ::function_name::named;
|
||||
use qovery_engine::cloud_provider::aws::kubernetes::VpcQoveryNetworkMode;
|
||||
use qovery_engine::cloud_provider::scaleway::application::Zone;
|
||||
@@ -22,7 +24,7 @@ fn create_and_destroy_kapsule_cluster(
|
||||
cluster_test(
|
||||
test_name,
|
||||
Kind::Scw,
|
||||
context(),
|
||||
context(generate_id().as_str(), generate_cluster_id(zone.as_str()).as_str()),
|
||||
logger(),
|
||||
zone.as_str(),
|
||||
secrets,
|
||||
|
||||
@@ -11,7 +11,7 @@ use tempfile::NamedTempFile;
|
||||
#[test]
|
||||
fn test_delete_bucket_hard_delete_strategy() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
@@ -46,7 +46,7 @@ fn test_delete_bucket_hard_delete_strategy() {
|
||||
#[test]
|
||||
fn test_delete_bucket_empty_strategy() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
@@ -86,7 +86,7 @@ fn test_delete_bucket_empty_strategy() {
|
||||
#[test]
|
||||
fn test_create_bucket() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
@@ -122,7 +122,7 @@ fn test_create_bucket() {
|
||||
#[test]
|
||||
fn test_recreate_bucket() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
@@ -164,7 +164,7 @@ fn test_recreate_bucket() {
|
||||
#[test]
|
||||
fn test_put_file() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
@@ -216,7 +216,7 @@ fn test_put_file() {
|
||||
#[test]
|
||||
fn test_get_file() {
|
||||
// setup:
|
||||
let context = context();
|
||||
let context = context("fake_orga_id", "fake_cluster_id");
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let scw_access_key = secrets.SCALEWAY_ACCESS_KEY.unwrap_or("undefined".to_string());
|
||||
let scw_secret_key = secrets.SCALEWAY_SECRET_KEY.unwrap_or("undefined".to_string());
|
||||
|
||||
@@ -27,8 +27,17 @@ fn create_scaleway_kubernetes_kapsule_test_cluster() {
|
||||
let span = span!(Level::INFO, "utility", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let organization_id = secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID");
|
||||
let cluster_id = secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID");
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let engine = Scaleway::docker_cr_engine(&context, logger.clone());
|
||||
let session = engine.session().unwrap();
|
||||
let mut tx = session.transaction();
|
||||
@@ -37,11 +46,6 @@ fn create_scaleway_kubernetes_kapsule_test_cluster() {
|
||||
let nodes = Scaleway::kubernetes_nodes();
|
||||
let cloudflare = dns_provider_cloudflare(&context, ClusterDomain::Default);
|
||||
|
||||
let cluster_id = secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID");
|
||||
|
||||
let kubernetes = Kapsule::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
@@ -88,8 +92,17 @@ fn destroy_scaleway_kubernetes_kapsule_test_cluster() {
|
||||
let span = span!(Level::INFO, "utility", name = test_name);
|
||||
let _enter = span.enter();
|
||||
|
||||
let organization_id = secrets
|
||||
.SCALEWAY_TEST_ORGANIZATION_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_ORGANIZATION_ID");
|
||||
let cluster_id = secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID");
|
||||
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let engine = Scaleway::docker_cr_engine(&context, logger.clone());
|
||||
let session = engine.session().unwrap();
|
||||
let mut tx = session.transaction();
|
||||
@@ -98,11 +111,6 @@ fn destroy_scaleway_kubernetes_kapsule_test_cluster() {
|
||||
let nodes = Scaleway::kubernetes_nodes();
|
||||
let cloudflare = dns_provider_cloudflare(&context, ClusterDomain::Default);
|
||||
|
||||
let cluster_id = secrets
|
||||
.SCALEWAY_TEST_CLUSTER_ID
|
||||
.as_ref()
|
||||
.expect("SCALEWAY_TEST_CLUSTER_ID is not set");
|
||||
|
||||
let kubernetes = Kapsule::new(
|
||||
context.clone(),
|
||||
cluster_id.to_string(),
|
||||
|
||||
@@ -11,11 +11,11 @@ use test_utilities::utilities::{context, engine_run_test, generate_cluster_id, g
|
||||
#[test]
|
||||
fn create_and_destroy_kapsule_cluster_with_env_in_par_2() {
|
||||
let logger = logger();
|
||||
let context = context();
|
||||
let zone = Zone::Paris2;
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let organization_id = generate_id();
|
||||
let cluster_id = generate_cluster_id(zone.as_str());
|
||||
let context = context(organization_id.as_str(), cluster_id.as_str());
|
||||
let secrets = FuncTestsSecrets::new();
|
||||
let cluster_domain = format!(
|
||||
"{}.{}",
|
||||
cluster_id.as_str(),
|
||||
@@ -26,11 +26,7 @@ fn create_and_destroy_kapsule_cluster_with_env_in_par_2() {
|
||||
.as_str()
|
||||
);
|
||||
|
||||
let environment = test_utilities::common::working_minimal_environment(
|
||||
&context,
|
||||
organization_id.as_str(),
|
||||
cluster_domain.as_str(),
|
||||
);
|
||||
let environment = test_utilities::common::working_minimal_environment(&context, cluster_domain.as_str());
|
||||
let env_action = EnvironmentAction::Environment(environment.clone());
|
||||
|
||||
engine_run_test(|| {
|
||||
|
||||
Reference in New Issue
Block a user