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

[Sandbox] deploy-sh | portable shell scripts for deployments to Docker, native Linux, *BSD, SunOS, macOS, &etc. #321

Open
2 tasks done
SamuelMarks opened this issue Jan 7, 2025 · 0 comments
Labels
New New Application

Comments

@SamuelMarks
Copy link

SamuelMarks commented Jan 7, 2025

Application contact emails

[email protected]

Project Summary

Portable shell scripts for deployments to Docker, native Linux, *BSD, SunOS, macOS, &etc.

Project Description

Docker and Kubernetes are great. But deploying Kubernetes on Docker is adhoc. The old approach of installing everything native is becoming less and less common; thanks in large-part to CNCF projects.

But native deployment is handy for testing, developer set ups, and experimenting with new alternatives (e.g., would my application be better deployed monolithically; considering my workloads?). There's also the non-Linux world of SunOS, *BSD, mainframes, and gasp Windows.

With these portable shell scripts all OSs should be targetable; by using pure POSIX-compatible /bin/sh scripts [and a bit of Windows cmd to prove portability).

The main goal is to replace 'getting started' guides with a cross-platform native installer script. Secondary goals are to enable lower usage of Docker images and better usage of Docker cache. To exemplify this advantage, imagine: (databases; queues; web servers; email servers; REST APIs) in a single Dockerfile, then in 30 Dockerfiles, then in … you get the idea?

Org repo URL (provide if all repos under the org are in scope of the application)

N/A

Project repo URL in scope of application

https://github.com/SamuelMarks/deploy-sh

Additional repos in scope of the application

No response

Website URL

https://github.com/SamuelMarks/deploy-sh

Roadmap

https://github.com/SamuelMarks/deploy-sh/blob/master/ROADMAP.md

Roadmap context

This is intended to assist in creating new Dockerfiles; deploying natively; and for deploying within non-Docker virtual environments like: unikernels; jails; zones; alternative image formats; whole virtual machines; and pure namespaces & cgroups.

Contributing Guide

https://github.com/SamuelMarks/deploy-sh/blob/master/README.md

Code of Conduct (CoC)

https://github.com/SamuelMarks/deploy-sh/blob/master/README.md

Adopters

No response

Contributing or Sponsoring Org

No response

Maintainers file

https://github.com/SamuelMarks/deploy-sh/blob/master/README.md

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

Currently this project is split into 3 areas:

  1. A library of shell scripts, with a clear directory structure (toolchains, databases, servers, 3rd-party self-hosted APIs)
  2. A new JSON format
  3. A generator—written in pure /bin/sh—going from the JSON format to shell scripts and Dockerfiles

What CNCF would be especially great at is expanding the shell script library from the current <40 *.sh files to a few thousand. This is comparable to development of a new package manager, or the ports of microsoft/vcpkg.

Benefit to the Landscape

Most projects on the CNCF landscape are difficult to install in more then one way. For example, they're usually trivial to pull from a docker registry, but difficult to host natively locally on Linux (let alone macOS, *BSD, or forbid Windows).

This project will help all CNCF projects port to new platforms, test different dependency versions, and benchmark / security-profile different systems (e.g., Kubernetes vs Mesos; Docker [cgroup & namespaces] vs Zones vs Jails).

Cloud Native 'Fit'

This is both for cloud native and mainframe use-cases. For both monolithic and twelve-factor to more than 12 factor distributed solutions. This is useful for deploying platforms like Kubernetes, and for deploying a large number of simple applications, databases, and servers without using any centralised resource coordination system (i.e., old-school native).

Cloud Native 'Integration'

Depends on none; complements all.

Cloud Native Overlap

Overlap with some; conflicts with none. Everyone else is writing one-off shell scripts. How about we centralise this development?

Similar projects

Any cross-platform package manager.

Landscape

No

Business Product or Service to Project separation

N/A

Project Domain Technical Review

N/A

CNCF Contacts

N/A

Additional information

Planning on finishing the roadmap in the next month. So might be too early to post here; but though I would anyway to get some early feedback.

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

No branches or pull requests

1 participant