Giter Site home page Giter Site logo

pojntfx / ipxebuilderd Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 178 KB

Build daemon and CLI for iPXE.

Home Page: https://pojntfx.github.io/ipxebuilderd/

License: GNU Affero General Public License v3.0

Go 96.62% Dockerfile 3.38%
go golang ipxe build-system netboot network-boot pxe pxe-boot

ipxebuilderd's Introduction

ipxebuilderd

Build daemon and CLI for iPXE.

pipeline status

Overview

ipxebuilderd is a build daemon with a CLI for iPXE, the leading open source network boot firmware. It is built of two components:

  • ipxebuilderd, a build daemon with a gRPC interface which uploads built artifacts to S3
  • ipxectl, a CLI for ipxebuilderd

ipxebuilderd bundles the iPXE source code, but does not the toolchain in it's binary. Please use to the Docker images or Helm chart, which bundle it; the latter also bundles a S3 (Minio) server.

Installation

Prebuilt Binaries

Prebuilt binaries are available on the releases page.

Go Package

A Go package is available.

Docker Image

A Docker image is available on Docker Hub.

Helm Chart

A Helm chart is available in @pojntfx's Helm chart repository.

Usage

Daemon

You may also set the flags by setting env variables in the format IPXEBUILDERD_[FLAG] (i.e. IPXEBUILDERD_IPXEBUILDERD_CONFIGFILE=examples/ipxebuilderd.yaml) or by using a configuration file.

% ipxebuilderd --help
ipxebuilderd is the iPXE build daemon.

Find more information at:
https://pojntfx.github.io/ipxebuilderd/

Usage:
  ipxebuilderd [flags]

Flags:
  -h, --help                                   help for ipxebuilderd
  -f, --ipxebuilderd.configFile string         Configuration file to use.
  -l, --ipxebuilderd.listenHostPort string     TCP listen host:port. (default "0.0.0.0:1010")
  -u, --ipxebuilderd.s3AccessKey string        Access key of the S3 server to connect to. (default "ipxebuilderUser")
  -b, --ipxebuilderd.s3Bucket string           S3 bucket to use. (default "ipxebuilderd")
  -s, --ipxebuilderd.s3HostPort string         Host:port of the S3 server to connect to. (default "minio.ipxebuilderd.example.com")
  -o, --ipxebuilderd.s3HostPortPublic string   Public host:port of the S3 server (will be used in shared links). (default "minio.ipxebuilderd.example.com")
  -p, --ipxebuilderd.s3SecretKey string        Secret key of the S3 server to connect to. (default "ipxebuilderdPass")
  -z, --ipxebuilderd.secure                    Whether to use a secure connection to S3.

Client CLI

You may also set the flags by setting env variables in the format IPXE_[FLAG] (i.e. IPXE_IPXE_CONFIGFILE=examples/ipxe.yaml) or by using a configuration file.

% ipxectl --help
ipxectl manages ipxebuilderd, the iPXE build daemon.

Find more information at:
https://pojntfx.github.io/ipxe/

Usage:
  ipxectl [command]

Available Commands:
  apply       Apply a ipxe
  delete      Delete one or more iPXE(s)
  get         Get one or all iPXE(s)
  help        Help about any command

Flags:
  -h, --help   help for ipxectl

Use "ipxectl [command] --help" for more information about a command.

License

ipxebuilderd (c) 2020 Felicitas Pojtinger

SPDX-License-Identifier: AGPL-3.0

ipxebuilderd's People

Contributors

pojntfx avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

wayneburlingame

ipxebuilderd's Issues

build: Use dibs V2

The new, post-rewrite dibs should be used and the CI/CD configuration of it be adapted for this repo.

feat: Add client CLI

There should be a client CLI that is similar to the other services with full CRUD capabilities, with the create/get all/get one/delete commands calling the gRPC server/the S3 server.

Add gRPC service

There should be a gRPC service that returns a stream with status updates and finally a (for now) mocked S3 path.

Add worker for status tracking

In order for the library to be more useful, there should be a worker system that sends data about the progress of each build over a channel.

Queue concurrent build requests

Currently, there is UB for concurrent requests. We should either lock the current build or copy the files somewhere else before every build.

feat: Add S3 configuration

There should be a configured Minio chart as a chart dependency as well as an implementation of S3 upload.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.