-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Web Server Re-architecture
Describe the Enhancement
RFC 0007 has been accepted and merged. This is a tracking issue for implementing this work.
Step 1 - Development backwards compatibility
In order to allow for the development of new buildpacks such as <web-server>-zero-configuration and <web-server>-start we will need a buildpack that can provide the web-server in question without doing any other configuration. In order to achieve this I propose the nginx and httpd buildpacks each respectively utilize a new provision nginx-development and httpd-development or'd to the existing buildpack. The new buildpacks will be able to require the development provisions and when the <web-server> buildpack detects that a development provision was required it can modify it's build process to only provide the <web-server> dependency. This will also have the advantage of isolating the provision steps in build which will be useful when those parts are the only ones that will be needed in the buildpack going forward. This API will allow the buildpack to continue to function as it normally would but allow buildpacks to be developed using the future expected behavior.
Step 2 - Develop new buildpacks
The new buildpacks that cover existing functionality in the <web-server> buildpacks such as zero configuration and writing start commands are being exported to new buildpacks. These need to be written and tested in the same way that they are in the current <web-server> buildpacks.
Nginx
HTTPD
Step 3 - Convert existing buildpacks and update API
Once the new buildpacks are developed the existing <web-server> buildpacks can be converted into their new role and dependency providing buildpacks. The development API can also be removed at this stage and the developed buildpacks can swap over.
Nginx
- Convert into dependency providing buildpack nginx#441
- Update to production build plan API nginx-zero-configuration#2
- Update to production build plan API nginx-start#2
- Replace
nginxbuild order after re-architecture #129
HTTPD
- Convert into dependency providing buildpack httpd#380
- Update to production build plan API httpd-zero-configuration#2
- Update to production build plan API httpd-start#2
- Replace
httpdbuild order after re-architecture #130
Motivation
This will make the web-server buildpacks more similar to existing buildpack ecosystems and will make the dependencies easier to utilize by other buildpack families.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status