Commit Graph

57 Commits

Author SHA1 Message Date
Mahmoud-Emad
54192a06d5 docs: Formatting the code 2025-09-14 15:46:57 +03:00
Mahmoud-Emad
6c971ca689 feat: Add custom crun root and enhance container lifecycle
- Use custom `crun --root` for all container commands
- Implement `cleanup_crun_state` for factory reset
- Add retry logic for `crun create` on "File exists" error
- Improve OCI config with `set_terminal`, unique env/rlimits
- Add default mounts for `/dev/pts`, `/dev/shm`, `/dev/mqueue`, `/sys/fs/cgroup`
2025-09-10 13:44:32 +03:00
Mahmoud-Emad
2ddec79102 refactor: Add JSON serialization tags to OCI spec fields
- Add `json` tags for `oci_version` and `no_new_privileges`
- Add `json` tag for `additional_gids` in `User` struct
- Add `json` tags for `typ` in `Rlimit`, `Mount`, `LinuxNamespace`
- Add `json` tags for path and ID mapping fields in `Linux`
- Add `json` tags for `file_mode`, `container_id`, `host_id`
2025-09-10 11:54:38 +03:00
Mahmoud-Emad
7635732952 feat: integrate crun module for container config
- Replace manual OCI config generation
- Store `crun.CrunConfig` in `Container` struct
- Expose `crun` config management methods
- Use `crun` module in container factory
- Add `crun_configs` map to factory
`
2025-09-10 11:43:31 +03:00
Mahmoud-Emad
41c8f7cf6d feat: Add basic heropods container example
- Initialize `heropods` factory using Podman
- Create, start, and stop a custom `alpine` container
- Execute a command within the container
- Add debug log for container command execution
2025-09-08 14:29:26 +03:00
Mahmoud-Emad
196bcebb27 refactor: enhance container lifecycle and Crun executor
- Refactor container definition and creation flow
- Implement idempotent behavior for `container.start()`
- Add comprehensive `ExecutorCrun` support to all Node methods
- Standardize OCI image pulling and rootfs export via Podman
- Update default OCI config for persistent containers and no terminal
2025-09-08 13:54:40 +03:00
Mahmoud-Emad
ef211882af refactor: streamline container setup and dependencies
- Remove `xz-utils` from initial package install
- Remove password/secret check in `obj_init`
- Add on-demand `crun` installation during container create
- Import `herorunner_installer` for `crun` setup
2025-09-07 19:01:08 +03:00
Mahmoud-Emad
7001e8a2a6 refactor: externalize container and image base directories
- Add `base_dir` field to `ContainerFactory`
- Initialize `base_dir` from `CONTAINERS_DIR` env or user home
- Replace hardcoded `/containers` paths with `base_dir` variable
- Update image `created_at` retrieval to use `os.stat`
2025-09-07 16:42:34 +03:00
Mahmoud-Emad
16c01b2e0f feat: Add ExecutorCrun and enable container node creation
- Add ExecutorCrun to Executor type union
- Expose ExecutorCrun.init() as public
- Implement Container.node() to build builder.Node
- Initialize ExecutorCrun and assign to new node
- Set default node properties (platform, cputype)
2025-09-07 16:05:24 +03:00
Mahmoud-Emad
a74129ff90 refactor: Migrate container management to heropods module
- Remove `herorun` module and related scripts
- Introduce `heropods` module for container management
- Enhance `tmux` module with pane clearing and creation
- Update `Container` methods to use `osal.Command` result
- Improve `ContainerFactory` for image & container handling
2025-09-07 15:56:59 +03:00
145c6d8714 ... 2025-09-07 15:27:41 +04:00
cb125e8114 ...
Co-authored-by: Omdanii <mahmmoud.hassanein@gmail.com>
2025-09-07 15:15:41 +04:00
53552b03c2 ... 2025-09-07 14:47:58 +04:00
12316e57bb ... 2025-09-07 14:26:42 +04:00
f6557335ee ... 2025-09-07 07:23:43 +04:00
bbac841427 ... 2025-09-07 07:21:40 +04:00
Mahmoud-Emad
8d03eb822d feat: add HeroRun remote container management library
- Introduce Executor for remote container orchestration
- Add Container lifecycle management with tmux
- Support Alpine and Alpine Python base images
- Auto-install core dependencies on remote node
- Include full usage examples and updated README
2025-09-03 18:32:47 +03:00
ce6cf3aa9c ... 2025-08-29 09:48:44 +02:00
e89bd8ce24 ... 2025-08-28 19:22:14 +02:00
0a02ea353a ... 2025-08-28 18:46:24 +02:00
03c296ec2f ... 2025-08-28 18:39:18 +02:00
a96bebfd65 ... 2025-08-28 18:37:50 +02:00
fac9276479 ... 2025-08-28 18:27:32 +02:00
8440b18e2f ... 2025-08-28 17:37:57 +02:00
e340ad01ea ... 2025-08-28 17:19:32 +02:00
ae1f9d4477 .. 2025-08-28 16:12:34 +02:00
fb87adf87d ... 2025-08-28 16:02:28 +02:00
a4472f095e Merge branch 'development' into development_builders
* development:
  minor example fixes
  feat: add comprehensive SSH agent management command
  refactor: Harden and improve SSH agent module
  ...
  feat: add editable ttyd dashboard mode
  feat: add CLI for dashboard management and 4-pane layout
  fix: Fix build
  ...
  refactor: update SSH agent examples and module structure
  feat: add tmux dashboard with ttyd integration
  refactor: Remove is_tmux_server_not_running_error function
  wip: pushing the code to sync in other branch
  refactor: Improve tmux API consistency and formatting

# Conflicts:
#	lib/osal/core/net.v
#	lib/virt/podman/factory.v
2025-08-28 14:26:06 +02:00
f5ca193fb4 ... 2025-08-28 14:25:07 +02:00
3f9844fd93 ... 2025-08-28 14:03:29 +02:00
12c197207c ... 2025-08-28 13:28:05 +02:00
60fd795b1f ... 2025-08-28 12:02:48 +02:00
c10a7f2e7b ... 2025-08-28 09:17:10 +02:00
Mahmoud-Emad
9d79b6f2e2 feat: introduce consolidated Podman module with dual APIs
- Restructure Podman module into sub-files
- Introduce Simple API for quick Podman operations
- Add Podman machine management (init, start, list)
- Enhance Buildah integration with structured errors
- Define specific error types for Podman operations
- Update documentation and add comprehensive demo script
2025-08-27 13:10:53 +03:00
Mahmoud-Emad
1228441fd6 feat: Add Buildah builder API and refactor module
- Introduce `Builder` struct for image creation
- Implement `PodmanFactory` methods for builder lifecycle
- Rename `herocontainers` module to `podman`
- Update `PodmanFactory.new` with platform checks
- Revise documentation for `podman` and Buildah usage
2025-08-26 20:28:38 +03:00
50545ef5c1 ... 2025-08-25 12:53:25 +02:00
ffa5447e6f ... 2025-08-25 12:04:40 +02:00
bf999d8fcb ... 2025-08-25 09:07:00 +02:00
01163ef534 ... 2025-08-25 05:44:45 +02:00
e030309b7f ... 2025-08-15 07:09:40 +02:00
802f6e074d ... 2025-07-30 15:58:04 +02:00
cb13febd78 ... 2025-07-30 15:24:10 +02:00
66757c52d7 ... 2025-07-30 15:00:20 +02:00
ddf5fcbbcc ... 2025-07-21 06:18:46 +02:00
7b69719f0e ... 2025-02-09 08:55:01 +01:00
1d631fec21 ... 2025-02-09 08:52:42 +01:00
6e619622d2 ... 2025-02-08 14:11:51 +01:00
5ad2062e5c format 2025-02-06 06:26:44 +03:00
b89a9e87c8 feat: Add open-webui example using Docker
- Created an example to create a docker image for open-webui
- The `docker_recipe_env.v` file is updated to correctly handle quoting in environment variables.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-04 18:44:02 +02:00
1d6af5204b ... 2025-02-02 21:56:59 +03:00