Kong / kong

🦍 The Cloud-Native API Gateway and AI Gateway.
https://konghq.com/install/#kong-community
Apache License 2.0
38.78k stars 4.77k forks source link

How to distribute (release process) Kong? #2

Closed thibaultcha closed 9 years ago

thibaultcha commented 9 years ago

Find a way to ship Kong and an easy way to install/run Cassandra for test purposes.

Ideas to experiment:

Things required to run Kong:

An idea could be that on the website, the user lands on a Download page asking him what is his distribution, he selects, we display the way to install Kong on his distribution (Deb vs RPM for example) as a list of commands he can copy/paste.

ahmadnassri commented 9 years ago

easiest way for Debian packaging is to setup a ppa package through launchpad.net

https://github.com/LMMS/lmms/wiki/Packaging-Ubuntu-PPA

nijikokun commented 9 years ago

Package / Chef / Puppet / Docker / Vagrant (Not all at once, but eventually should support these)

subnetmarco commented 9 years ago

Take a look at the various Dockerfiles to see exactly what dependencies Kong needs.

montanaflynn commented 9 years ago

I'll just throw these in for consideration:

ahmadnassri commented 9 years ago

:+1: fpm, throw that in Travis, package it and store it back in github releases.

ahmadnassri commented 9 years ago

also, github releases in itself is a distribution method, compile versions for different environments and store in github releases ...

https://github.com/Mashape/kong/releases/tag/0.0.1-beta

all can be done in Travis, with proper tagging and setup.

thibaultcha commented 9 years ago

We still need an environment-specific way to install on a server. Aka copy-paste of commands in an ssh session, using different package managers for dependencies.

Putting stuff in GH releases doesn't really help, we are not shipping a binary, but a Luarocks module, so... It's install from source or Luarocks.

montanaflynn commented 9 years ago

When Niji suggested an installation shell script yesterday I remembered that's how Boundary supports a ton of platforms with the same quick installation snippet. Here's their script: https://github.com/boundary/boundary_scripts/blob/master/setup_meter.sh

thibaultcha commented 9 years ago

The problem with installation scripts is that you have to read it to know what it's going to do on your machine. When giving the user a list of commands feels safer and less time consuming (if you care about your setup).

We could still provide the script for people who don't really care though. It is after all, suggested in the list above ^

nijikokun commented 9 years ago

only if you're extremely paranoid, 100% sure you don't read every brew ruby file, or every installation shell script you use.

thibaultcha commented 9 years ago

It's not about being paranoid, but knowing how and where it installs stuff. I know where my package managers install stuff. It's more about setup. And I understand better what it's doing, especially if we just have a .deb etc.

We could replace an install.sh with a simple package manager install(from apt-get and others)

nijikokun commented 9 years ago

Its actually fine, because it's in plain text so you can read what its doing :+1:

thibaultcha commented 9 years ago

I think we can close this issue for now. Install process has been discussed and is mocked.

For release
In the future