forked from NationTech/harmony
		
	Merge pull request 'chore: added default mariadb size and pass env variables to php app' (#28) from lamp-env-vars into master
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/28 Reviewed-by: johnride <jg@nationtech.io>
This commit is contained in:
		
						commit
						764fd6d451
					
				| @ -24,6 +24,7 @@ async fn main() { | ||||
|         // This config can be extended as needed for more complicated configurations
 | ||||
|         config: LAMPConfig { | ||||
|             project_root: "./php".into(), | ||||
|             database_size: format!("2Gi").into(), | ||||
|             ..Default::default() | ||||
|         }, | ||||
|     }; | ||||
|  | ||||
| @ -3,6 +3,7 @@ use dockerfile_builder::instruction::{CMD, COPY, ENV, EXPOSE, FROM, RUN, WORKDIR | ||||
| use dockerfile_builder::{Dockerfile, instruction_builder::EnvBuilder}; | ||||
| use non_blank_string_rs::NonBlankString; | ||||
| use serde_json::json; | ||||
| use std::collections::HashMap; | ||||
| use std::fs; | ||||
| use std::path::{Path, PathBuf}; | ||||
| use std::str::FromStr; | ||||
| @ -36,6 +37,7 @@ pub struct LAMPScore { | ||||
| pub struct LAMPConfig { | ||||
|     pub project_root: PathBuf, | ||||
|     pub ssl_enabled: bool, | ||||
|     pub database_size: Option<String>, | ||||
| } | ||||
| 
 | ||||
| impl Default for LAMPConfig { | ||||
| @ -43,6 +45,7 @@ impl Default for LAMPConfig { | ||||
|         LAMPConfig { | ||||
|             project_root: Path::new("./src").to_path_buf(), | ||||
|             ssl_enabled: true, | ||||
|             database_size: None, | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -113,6 +116,10 @@ impl<T: Topology + K8sclient + HelmCommand> Interpret<T> for LAMPInterpret { | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             { | ||||
|                 "name": "MYSQL_HOST", | ||||
|                 "value": secret_name | ||||
|             }, | ||||
|             ]), | ||||
|         }; | ||||
| 
 | ||||
| @ -152,6 +159,13 @@ impl LAMPInterpret { | ||||
|         inventory: &Inventory, | ||||
|         topology: &T, | ||||
|     ) -> Result<Outcome, InterpretError> { | ||||
|         let mut values_overrides = HashMap::new(); | ||||
|         if let Some(database_size) = self.score.config.database_size.clone() { | ||||
|             values_overrides.insert( | ||||
|                 NonBlankString::from_str("primary.persistence.size").unwrap(), | ||||
|                 database_size, | ||||
|             ); | ||||
|         } | ||||
|         let score = HelmChartScore { | ||||
|             namespace: self.get_namespace(), | ||||
|             release_name: NonBlankString::from_str(&format!("{}-database", self.score.name)) | ||||
| @ -161,7 +175,7 @@ impl LAMPInterpret { | ||||
|             ) | ||||
|             .unwrap(), | ||||
|             chart_version: None, | ||||
|             values_overrides: None, | ||||
|             values_overrides: Some(values_overrides), | ||||
|             create_namespace: true, | ||||
|             install_only: true, | ||||
|             values_yaml: None, | ||||
| @ -169,7 +183,6 @@ impl LAMPInterpret { | ||||
| 
 | ||||
|         score.create_interpret().execute(inventory, topology).await | ||||
|     } | ||||
| 
 | ||||
|     fn build_dockerfile(&self, score: &LAMPScore) -> Result<PathBuf, Box<dyn std::error::Error>> { | ||||
|         let mut dockerfile = Dockerfile::new(); | ||||
| 
 | ||||
| @ -257,6 +270,13 @@ opcache.fast_shutdown=1 | ||||
|              sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-enabled/security.conf" | ||||
|         )); | ||||
| 
 | ||||
|         // Set env vars
 | ||||
|         dockerfile.push(RUN::from( | ||||
|             "echo 'PassEnv MYSQL_PASSWORD' >> /etc/apache2/sites-available/000-default.conf \ | ||||
|              && echo 'PassEnv MYSQL_USER' >> /etc/apache2/sites-available/000-default.conf \ | ||||
|              && echo 'PassEnv MYSQL_HOST' >> /etc/apache2/sites-available/000-default.conf",
 | ||||
|         )); | ||||
| 
 | ||||
|         // Create a dedicated user for running Apache
 | ||||
|         dockerfile.push(RUN::from( | ||||
|             "groupadd -g 1000 appuser && \ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user