diff --git a/.gitignore b/.gitignore index 0ef832c..7b1e9f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ target private_repos log/ +*.tgz diff --git a/examples/lamp/auth/kubeconfig b/examples/lamp/auth/kubeconfig deleted file mode 100644 index 9c35782..0000000 --- a/examples/lamp/auth/kubeconfig +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -clusters: -- cluster: - certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTkRZM01qYzROell3SGhjTk1qVXdOVEE0TVRneE1URTJXaGNOTXpVd05UQTJNVGd4TVRFMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTkRZM01qYzROell3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFUdm8rYjhqbmZmeHpTWlBvdWt0MUdWQStBcE9nRTRsd3pXd0tLVU1LdTMKemdLYUJnTDJrdmkxRnZEZGlMZ0RhcUJENmYzYTVQWWd4QWViZXA2Nk5odmRvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVWZSS1ByVlZmZ3VrQmhQQWJZMmEwCkNiYkFnenN3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU5yeFFXaWowektuOTRJeXpjMnRPNTQ5Wnk0YlpSU3kKQllNeVRWT3I1QWREQWlFQWhrWW8zdDFiMFhwLzg4Tkt0cVRCY0V4NGtrZ24za0FBWXEweTRUTXU5QW89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - server: https://0.0.0.0:40437 - name: k3d-harmony -contexts: -- context: - cluster: k3d-harmony - user: admin@k3d-harmony - name: k3d-harmony -current-context: k3d-harmony -kind: Config -preferences: {} -users: -- name: admin@k3d-harmony - user: - client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrRENDQVRlZ0F3SUJBZ0lJRVc5bnVqeDdDV2N3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOelEyTnpJM09EYzJNQjRYRFRJMU1EVXdPREU0TVRFeE5sb1hEVEkyTURVdwpPREU0TVRFeE5sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJEUW5CM2FOZU5CU2FySjUKV1VpRjd1TFMwVmpWT3A4R3FxV1JjMUhNb0s3eVluUlFEWm0veFgwMkZ5Vkh6cjBvNmJtN1lRTkQvVTYwMVo1YwprTVhqOTNLalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUTVJWjFCMkhKQWYxOEMwTFJ0NE5EVkQxdmFOekFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlCUGMzQ1doRlJSQUFmUDhBU0NtaWMxaFRXQ1FnbjVuUUpNNjBEbm9xWkZVQUlnVXdDWlpmK2p1enlTcGhCSApqNUFpS0psaUJZSklUZ1pETnFWS2VIZ0l3VG89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTkRZM01qYzROell3SGhjTk1qVXdOVEE0TVRneE1URTJXaGNOTXpVd05UQTJNVGd4TVRFMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTkRZM01qYzROell3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRQVQ0VXkvbm5YVjhmN2xtSTEwTHk1NjNmOStBL0VOeUYyWGVlVnFKNVQKVENCaVNncERIZ09ncE82MEZrMVdhRkRJWmZYcU9RTWI0Q1hjT2wrSVJyWS9vMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVU9TR2RRZGh5UUg5ZkF0QzBiZURRCjFROWIyamN3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnZEVYS0RBcjNlT0QzYWI0ZXZHMzgvbHplMEpoTXJIOFoKR25EUTRob2NncnNDSVFEejZFbGZtNWYvL0x1akdUUEFQT3BpR293SFFoMEI4Mk9kbFlMcDN3SEt3QT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU1zVUt1MXVBZ0k5VWR1ek9Jc2VvRjRFNGwvMlMzYnJhRlVvTGtuWXpwbGZvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFTkNjSGRvMTQwRkpxc25sWlNJWHU0dExSV05VNm53YXFwWkZ6VWN5Z3J2SmlkRkFObWIvRgpmVFlYSlVmT3ZTanB1YnRoQTBQOVRyVFZubHlReGVQM2NnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= diff --git a/examples/lamp/php/Dockerfile b/examples/lamp/php/Dockerfile deleted file mode 100644 index df5f4fa..0000000 --- a/examples/lamp/php/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM php:8.4-apache -ENV PHP_MEMORY_LIMIT=256M -ENV PHP_MAX_EXECUTION_TIME=30 -ENV PHP_ERROR_REPORTING="E_ERROR | E_WARNING | E_PARSE" -RUN apt-get update && apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev libzip-dev unzip && apt-get clean && rm -rf /var/lib/apt/lists/* -RUN docker-php-ext-configure gd --with-freetype --with-jpeg && docker-php-ext-install -j$(nproc) gd mysqli pdo_mysql zip opcache -RUN sed -i 's/VirtualHost \*:80/VirtualHost *:8080/' /etc/apache2/sites-available/000-default.conf && \ - sed -i 's/^Listen 80$/Listen 8080/' /etc/apache2/ports.conf -RUN mkdir -p /usr/local/etc/php/conf.d/ -COPY docker-php.ini /usr/local/etc/php/conf.d/docker-php.ini -RUN a2enmod headers && a2enmod rewrite && sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-enabled/security.conf && sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-enabled/security.conf -RUN 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 -RUN groupadd -g 1000 appuser && useradd -u 1000 -g appuser -m -s /bin/bash appuser && chown -R appuser:appuser /var/www/html -WORKDIR /var/www/html -COPY . /var/www/html -RUN chown -R appuser:appuser /var/www/html -EXPOSE 8080/tcp -CMD apache2-foreground \ No newline at end of file diff --git a/examples/lamp/php/docker-php.ini b/examples/lamp/php/docker-php.ini deleted file mode 100644 index 3745ad5..0000000 --- a/examples/lamp/php/docker-php.ini +++ /dev/null @@ -1,16 +0,0 @@ - -memory_limit = ${PHP_MEMORY_LIMIT} -max_execution_time = ${PHP_MAX_EXECUTION_TIME} -error_reporting = ${PHP_ERROR_REPORTING} -display_errors = Off -log_errors = On -error_log = /dev/stderr -date.timezone = UTC - -; Opcache configuration for production -opcache.enable=1 -opcache.memory_consumption=128 -opcache.interned_strings_buffer=8 -opcache.max_accelerated_files=4000 -opcache.revalidate_freq=2 -opcache.fast_shutdown=1 diff --git a/examples/rust/src/main.rs b/examples/rust/src/main.rs index 4575c5f..e56a30f 100644 --- a/examples/rust/src/main.rs +++ b/examples/rust/src/main.rs @@ -3,7 +3,9 @@ use std::{path::PathBuf, sync::Arc}; use harmony::{ inventory::Inventory, maestro::Maestro, - modules::application::{RustWebapp, RustWebappScore, features::ContinuousDelivery}, + modules::application::{ + RustWebFramework, RustWebapp, RustWebappScore, features::ContinuousDelivery, + }, topology::{K8sAnywhereTopology, Url}, }; @@ -13,6 +15,7 @@ async fn main() { let application = RustWebapp { name: "harmony-example-rust-webapp".to_string(), project_root: PathBuf::from("./examples/rust/webapp"), + framework: Some(RustWebFramework::Leptos), }; let app = RustWebappScore { name: "Example Rust Webapp".to_string(), diff --git a/examples/rust/webapp/Cargo.toml b/examples/rust/webapp/Cargo.toml index 5a60ede..1df4876 100644 --- a/examples/rust/webapp/Cargo.toml +++ b/examples/rust/webapp/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "webapp" +name = "harmony-example-rust-webapp" version = "0.1.0" edition = "2021" @@ -41,7 +41,7 @@ panic = "abort" [package.metadata.leptos] # The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name -output-name = "webapp" +output-name = "harmony-example-rust-webapp" # The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup. site-root = "target/site" # The site-root relative folder where all compiled output (JS, WASM and CSS) is written @@ -55,7 +55,7 @@ style-file = "style/main.scss" # Optional. Env: LEPTOS_ASSETS_DIR. assets-dir = "assets" # The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup. -site-addr = "127.0.0.1:3000" +site-addr = "0.0.0.0:3000" # The port to use for automatic reload monitoring reload-port = 3001 # [Optional] Command to use when running end2end tests. It will run in the end2end dir. diff --git a/examples/rust/webapp/Dockerfile.harmony b/examples/rust/webapp/Dockerfile.harmony index 63f781c..dffa3ac 100644 --- a/examples/rust/webapp/Dockerfile.harmony +++ b/examples/rust/webapp/Dockerfile.harmony @@ -1,10 +1,16 @@ -FROM rust:latest as builder +FROM rust:bookworm as builder +RUN apt-get update && apt-get install -y --no-install-recommends clang wget && wget https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz && tar -xvf cargo-binstall-x86_64-unknown-linux-musl.tgz && cp cargo-binstall /usr/local/cargo/bin && rm cargo-binstall-x86_64-unknown-linux-musl.tgz cargo-binstall && apt-get clean && rm -rf /var/lib/apt/lists/* +RUN cargo binstall cargo-leptos -y RUN rustup target add wasm32-unknown-unknown WORKDIR /app COPY . . -RUN cargo build --release --locked -FROM debian:bullseye-slim +RUN cargo leptos build --release -vv +FROM debian:bookworm-slim RUN groupadd -r appgroup && useradd -r -s /bin/false -g appgroup appuser -COPY --from=builder /app/target/release/harmony-example-rust-webapp /usr/local/bin/harmony-example-rust-webapp +ENV LEPTOS_SITE_ADDR=0.0.0.0:3000 +EXPOSE 3000/tcp +WORKDIR /home/appuser +COPY --from=builder /app/target/site/pkg /home/appuser/pkg +COPY --from=builder /app/target/release/harmony-example-rust-webapp /home/appuser/harmony-example-rust-webapp USER appuser -CMD /usr/local/bin/harmony-example-rust-webapp \ No newline at end of file +CMD /home/appuser/harmony-example-rust-webapp \ No newline at end of file diff --git a/examples/rust/webapp/src/app.rs b/examples/rust/webapp/src/app.rs index 6baa388..f8af923 100644 --- a/examples/rust/webapp/src/app.rs +++ b/examples/rust/webapp/src/app.rs @@ -13,7 +13,7 @@ pub fn App() -> impl IntoView { view! { // injects a stylesheet into the document
// id=leptos means cargo-leptos will hot-reload this stylesheet -