Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Network update and GIVC TLS #915

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Network update and GIVC TLS #915

wants to merge 1 commit into from

Conversation

mbssrc
Copy link
Collaborator

@mbssrc mbssrc commented Nov 25, 2024

Description of changes

This patch re-works the networking and enables TLS for GIVC.

Updates

  • update flake inputs: givc, ctrl-panel

Changes to networking

  • auto-generate IP and MAC addresses
  • remove 'debug' network from ghaf. We can simply remove
    the host from network in release and facilitate communication
    over mem share

Note that

  • the ghaf-host-debug name no longer exists
  • all VMs + host run in 192.168.100.0 subnet
  • you may need to change your proxy jumps to adjust for the changed ghaf-host address (192.168.100.2)
  • all VMs are reachable through their host name

Changes to givc

  • enable tls
  • enable multiple admin service interfaces
  • centralize givc-cli arguments across ghaf

Checklist for things done

  • Summary of the proposed changes in the PR description
  • More detailed description in the commit message(s)
  • Commits are squashed into relevant entities - avoid a lot of minimal dev time commits in the PR
  • Contribution guidelines followed
  • Ghaf documentation updated with the commit - https://tiiuae.github.io/ghaf/
  • PR linked to architecture documentation and requirement(s) (ticket id)
  • Test procedure described (or includes tests). Select one or more:
    • Tested on Lenovo X1 x86_64
    • Tested on Jetson Orin NX or AGX aarch64
    • Tested on Polarfire riscv64
  • Author has run make-checks and it passes
  • All automatic Github Action checks pass - see actions
  • Author has added reviewers and removed PR draft status
  • Change requires full re-installation
  • Change can be updated with nixos-rebuild ... switch

Instructions for Testing

  • List all targets that this applies to: Lenovo x1
  • Is this a new feature
    • Test that all apps + functionality works as before
    • Test that all VMs and host are reachable in the network
  • If it is an improvement how does it impact existing functionality?

@mbssrc mbssrc temporarily deployed to internal-build-workflow November 25, 2024 10:09 — with GitHub Actions Inactive
@mbssrc mbssrc temporarily deployed to internal-build-workflow November 25, 2024 10:50 — with GitHub Actions Inactive
Updates:
- update flake inputs: givc, ctrl-panel

Changes to networking:
- auto-generate IP and MAC addresses
- remove 'debug' network from ghaf. We can simply remove
  the host from network in release and facilitate communication
  over mem share

Changes to givc:
- enable tls
- enable multiple admin service interfaces
- centralize givc-cli arguments across ghaf

Signed-off-by: Manuel Bluhm <[email protected]>
@mbssrc mbssrc temporarily deployed to internal-build-workflow January 12, 2025 10:10 — with GitHub Actions Inactive
@mbssrc mbssrc changed the title WIP: GIVC TLS Network update and GIVC TLS Jan 12, 2025
@mbssrc mbssrc requested a review from brianmcgillion January 13, 2025 07:04
@mbssrc mbssrc mentioned this pull request Jan 16, 2025
15 tasks
};
type = mkOption {
description = "Type of the ghaf component. One of 'host', 'system-vm', or 'app-vm'.";
type = types.str;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to use lib.types.enum here.

config = {

# Populate the shared namespace
ghaf = optionalAttrs (hasAttr "microvm" config) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would hasAttrByPath ["microvm" "vms"] config make this more readable? Instead of the two checks.

};
port = mkOption {
description = "Port of admin server";
type = types.str;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use types.port here

};
protocol = mkOption {
description = "Protocol of admin server";
type = types.str;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

types.enum here would make sense.

@@ -46,11 +46,17 @@ let
inherit (config.ghaf.qemu) audiovm;
};

# Common namespace to pass parameters at built-time from host to VMs
commonModule = {
config.ghaf.common = config.ghaf.common;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inherit?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants