diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 268b223..22ce22a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,14 @@ -##################### -# Main global owner # -##################### +############### +# Demo owners # +############### -* +nginx/advanced-healthchecks @fabriziofiorucci +nginx/api-gateway @alessfg +nginx/api-steering @fabriziofiorucci +nginx/docker-image-builder @fabriziofiorucci +nginx/multicloud-gateway @fabriziofiorucci +nginx/soap-to-rest @fabriziofiorucci +nginx-gateway-fabric/traffic-splitting @sjberman +nginx-ingress-controller/ingress-deployment @DylenTurnbull +nginx-instance-manager/docker-deployment @fabriziofiorucci +nginx-workshops @apcurrier @sdutta9 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 369a4a3..23b5a5b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -10,4 +10,5 @@ Before creating a PR, run through this checklist and mark each as complete: - [ ] I have signed the [F5 Contributor License Agreement (CLA)](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md). - [ ] If applicable, I have added tests that prove my fix is effective or that my feature works. - [ ] If applicable, I have checked that any relevant tests pass after adding my changes. +- [ ] If this is a new demo, I have added the demo info to both the [`CODEOWNERS`](/.github/CODEOWNERS) and [`README.md`](/README.md). - [ ] I have updated any relevant documentation ([`README.md`](/README.md) and/or [`CHANGELOG.md`](/CHANGELOG.md)). diff --git a/.github/workflows/ossf_scorecard.yml b/.github/workflows/ossf_scorecard.yml index a7240df..147289b 100644 --- a/.github/workflows/ossf_scorecard.yml +++ b/.github/workflows/ossf_scorecard.yml @@ -8,7 +8,7 @@ on: schedule: - cron: "0 0 * * 1" push: - branches: [main, master] + branches: [main] workflow_dispatch: # Declare default permissions as read only. permissions: read-all @@ -16,19 +16,11 @@ jobs: analysis: name: Scorecard analysis runs-on: ubuntu-24.04 - # Delete the conditional below if you are using the OSSF Scorecard on a private repository. - if: ${{ github.event.repository.private == false }} permissions: # Needed if using Code Scanning alerts. security-events: write # Needed for GitHub OIDC token if publish_results is true. id-token: write - # Uncomment the permissions below if you are using the OSSF Scorecard on a private repository. - # contents: read - # actions: read - # issues: read # To allow GraphQL ListCommits to work - # pull-requests: read # To allow GraphQL ListCommits to work - # checks: read # To detect SAST tools steps: - name: Check out the codebase uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -40,12 +32,7 @@ jobs: with: results_file: results.sarif results_format: sarif - # (Optional) fine-grained personal access token. Uncomment the `repo_token` line below if you want to enable the Branch-Protection or Webhooks check on a *private* repository. - # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-fine-grained-pat-optional. - # repo_token: ${{ secrets.SCORECARD_TOKEN }} - # Publish the results for public repositories to enable scorecard badges. For more details, see https://github.com/ossf/scorecard-action#publishing-results. - # For private repositories, `publish_results` will automatically be set to `false`, regardless of the value entered here. publish_results: true # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF format to the repository Actions tab. diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 7e3972f..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 (Month Date, Year) - -Initial release of this project. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bcd2d34..e686025 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,9 @@ The following is a set of guidelines for contributing to this project. We really Follow the instructions on the README's [Getting Started](/README.md#Getting-Started) section to get this project up and running. - +## Project Structure + +This repo contains multiple demos. Each demo contained in this repo has to be fully functional and have an active owner. The active owner can be found in the [`CODEOWNERS`](/.github/CODEOWNERS) file. At this moment, there is no automated way to verify if demos are functional, but in the future there will be an automated pipeline. If a demo is reported to be non-functional, the owner will be notified. If the demo is not fixed/updated within a reasonable timeline, the demo will be shelved into a different non-functional folder. If after a further reasonable amount of time the demo has still not been fixed/updated, the demo will be removed from this repo. ## Contributing @@ -34,14 +36,12 @@ To suggest a feature or enhancement, please create an issue on GitHub with the l #### F5 Contributor License Agreement (CLA) -F5 requires all contributors to agree to the terms of the F5 CLA (available [here](https://github.com/f5/f5-cla/.github/blob/main/docs/f5_cla.md)) before any of their changes can be incorporated into an F5 Open Source repository (even contributions to the F5 CLA itself!). +F5 requires all contributors to agree to the terms of the F5 CLA (available [here](https://github.com/f5/f5-cla/blob/main/docs/f5_cla.md)) before any of their changes can be incorporated into an F5 Open Source repository (even contributions to the F5 CLA itself!). If you have not yet agreed to the F5 CLA terms and submit a PR to this repository, a bot will prompt you to view and agree to the F5 CLA. You will have to agree to the F5 CLA terms through a comment in the PR before any of your changes can be merged. Your agreement signature will be safely stored by F5 and no longer be required in future PRs. ## Code Guidelines - - ### Git Guidelines - Keep a clean, concise and meaningful git commit history on your branch (within reason), rebasing locally and squashing before submitting a PR. diff --git a/README.md b/README.md index d338f39..5f705c6 100644 --- a/README.md +++ b/README.md @@ -17,18 +17,43 @@ Each demo might have unique deployment requirements. Please refer to each indivi ## Available Demos -|Title|Description| -|-----|-----------| -|NGINX Advanced Healthcheck|Advanced active healthchecks for NGINX Plus| -|NGINX API gateway|Configure NGINX as an API gateway| -|NGINX API Steering|NGINX as an API gateway using an external data source for authentication, authorization and steering| -|NGINX Docker Image Builder|Tool to build several docker images for NGINX Plus, NGINX App Protect, NGINX Agent| -|NGINX Gateway Fabric|Simple overview of configuring NGINX Gateway Fabric to route traffic within Kubernetes| -|NGINX Ingress Controller|Simple overview of deploying and configuring NGINX Ingress Controller| -|NGINX Multicloud Gateway|NGINX setup for URI-based kubernetes traffic routing| -|NGINX NIM Docker|Tool to build docker images for NGINX Instance Manager| -|NGINX One|Simple overview of NGINX One and its capabilities| -|NGINX SOAP REST|Example NGINX configuration to translate between SOAP and REST| +### NGINX + +|Title|Description|Owner| +|-----|-----------|-----| +|[NGINX advanced healthchecks](nginx/advanced-healthchecks/)|Advanced active healthchecks for NGINX Plus|@fabriziofiorucci| +|[NGINX API gateway](nginx/api-gateway/)|Configure NGINX as an API gateway|@alessfg| +|[NGINX API steering](nginx/api-steering/)|NGINX as an API gateway using an external data source for authentication, authorization and steering|@fabriziofiorucci| +|[NGINX Docker image builder](nginx/docker-image-builder/)|Tool to build several Docker images for NGINX Plus, NGINX App Protect, NGINX Agent|@fabriziofiorucci| +|[NGINX multicloud gateway](nginx/multicloud-gateway/)|NGINX setup for URI-based kubernetes traffic routing|@fabriziofiorucci| +|[NGINX SOAP REST](nginx/soap-to-rest/)|Example NGINX configuration to translate between SOAP and REST|@fabriziofiorucci| + +### NGINX Gateway Fabric (NGF) + +|Title|Description|Owner| +|-----|-----------|-----| +|[NGINX Gateway Fabric traffic splitting](nginx-gateway-fabric/traffic-splitting/)|Simple overview of configuring NGINX Gateway Fabric to route traffic within Kubernetes|@sjberman| + +### NGINX Ingress Controller (NIC) + +|Title|Description|Owner| +|-----|-----------|-----| +|[NGINX Ingress Controller deployment](nginx-ingress-controller/ingress-deployment/)|Simple overview of deploying and configuring NGINX Ingress Controller|@DylenTurnbull| + +### NGINX Instance Manager (NIM) + +|Title|Description|Owner| +|-----|-----------|-----| +|[NGINX Instance Manager Docker deployment](nginx-instance-manager/docker-deployment/)|Tool to build docker images for NGINX Instance Manager|@fabriziofiorucci| + +### NGINX Workshops + +|Title|Description|Owner| +|-----|-----------|-----| +|[NGINX basics](nginx-workshops/README.md)|A 101 level introduction to NGINX|@apcurrier, @chrisakker, @sdutta9 | +|[NGINX Ingress Controller](nginx-workshops/README.md)|Learn everything you need to get started with NGINX Ingress Controller and its capabilities|@apcurrier, @chrisakker, @sdutta9| +|[NGINXaaS for Azure](nginx-workshops/README.md)|Learn everything you need to get started with NGINX as a Service for Azure (NGINXaaS) and its capabilities|@apcurrier, @chrisakker, @sdutta9| +|[NGINX One Console](nginx-workshops/README.md)|Learn everything you need to get started with NGINX One Console and its capabilities|@apcurrier, @chrisakker, @sdutta9| ## Contributing diff --git a/SUPPORT.md b/SUPPORT.md index d3707a3..27b7f1a 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -28,10 +28,6 @@ Want to get in touch with the NGINX development team directly? Try using the rel Please see the [contributing guide](/CONTRIBUTING.md) for guidelines on how to best contribute to this project. - - ## Community Support This project does **not** offer commercial support. Community support is offered on a best effort basis through either GitHub issues/PRs/discussions or through any of our active communities. diff --git a/nginx-basics/appworld/README.md b/nginx-basics/appworld/README.md deleted file mode 100644 index 6492ee5..0000000 --- a/nginx-basics/appworld/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# NGINX Basics Console Demo - -The material for this demo can be found within the NGINX Basics Workshop GitHub repository at . diff --git a/nginx-gateway-fabric/appworld/README.md b/nginx-gateway-fabric/traffic-splitting/README.md similarity index 100% rename from nginx-gateway-fabric/appworld/README.md rename to nginx-gateway-fabric/traffic-splitting/README.md diff --git a/nginx-gateway-fabric/appworld/cafe-route-equal-weight.yaml b/nginx-gateway-fabric/traffic-splitting/cafe-route-equal-weight.yaml similarity index 100% rename from nginx-gateway-fabric/appworld/cafe-route-equal-weight.yaml rename to nginx-gateway-fabric/traffic-splitting/cafe-route-equal-weight.yaml diff --git a/nginx-gateway-fabric/appworld/cafe-route-v2.yaml b/nginx-gateway-fabric/traffic-splitting/cafe-route-v2.yaml similarity index 100% rename from nginx-gateway-fabric/appworld/cafe-route-v2.yaml rename to nginx-gateway-fabric/traffic-splitting/cafe-route-v2.yaml diff --git a/nginx-gateway-fabric/appworld/cafe-route.yaml b/nginx-gateway-fabric/traffic-splitting/cafe-route.yaml similarity index 100% rename from nginx-gateway-fabric/appworld/cafe-route.yaml rename to nginx-gateway-fabric/traffic-splitting/cafe-route.yaml diff --git a/nginx-gateway-fabric/appworld/coffee-app.yaml b/nginx-gateway-fabric/traffic-splitting/coffee-app.yaml similarity index 100% rename from nginx-gateway-fabric/appworld/coffee-app.yaml rename to nginx-gateway-fabric/traffic-splitting/coffee-app.yaml diff --git a/nginx-gateway-fabric/appworld/gateway.yaml b/nginx-gateway-fabric/traffic-splitting/gateway.yaml similarity index 100% rename from nginx-gateway-fabric/appworld/gateway.yaml rename to nginx-gateway-fabric/traffic-splitting/gateway.yaml diff --git a/nginx-ingress-controller/appworld/README.md b/nginx-ingress-controller/ingress-deployment/README.md similarity index 100% rename from nginx-ingress-controller/appworld/README.md rename to nginx-ingress-controller/ingress-deployment/README.md diff --git a/nginx-ingress-controller/appworld/nginx-deployment.yaml b/nginx-ingress-controller/ingress-deployment/nginx-deployment.yaml similarity index 100% rename from nginx-ingress-controller/appworld/nginx-deployment.yaml rename to nginx-ingress-controller/ingress-deployment/nginx-deployment.yaml diff --git a/nginx-ingress-controller/appworld/nginx-ingress.yaml b/nginx-ingress-controller/ingress-deployment/nginx-ingress.yaml similarity index 100% rename from nginx-ingress-controller/appworld/nginx-ingress.yaml rename to nginx-ingress-controller/ingress-deployment/nginx-ingress.yaml diff --git a/NGINX-NIM-Docker/Dockerfile.automated b/nginx-instance-manager/docker-deployment/Dockerfile.automated similarity index 100% rename from NGINX-NIM-Docker/Dockerfile.automated rename to nginx-instance-manager/docker-deployment/Dockerfile.automated diff --git a/NGINX-NIM-Docker/Dockerfile.manual b/nginx-instance-manager/docker-deployment/Dockerfile.manual similarity index 100% rename from NGINX-NIM-Docker/Dockerfile.manual rename to nginx-instance-manager/docker-deployment/Dockerfile.manual diff --git a/NGINX-NIM-Docker/README.md b/nginx-instance-manager/docker-deployment/README.md similarity index 100% rename from NGINX-NIM-Docker/README.md rename to nginx-instance-manager/docker-deployment/README.md diff --git a/NGINX-NIM-Docker/container/startNIM.sh b/nginx-instance-manager/docker-deployment/container/startNIM.sh similarity index 100% rename from NGINX-NIM-Docker/container/startNIM.sh rename to nginx-instance-manager/docker-deployment/container/startNIM.sh diff --git a/NGINX-NIM-Docker/contrib/docker-compose/.env b/nginx-instance-manager/docker-deployment/contrib/docker-compose/.env similarity index 100% rename from NGINX-NIM-Docker/contrib/docker-compose/.env rename to nginx-instance-manager/docker-deployment/contrib/docker-compose/.env diff --git a/NGINX-NIM-Docker/contrib/docker-compose/README.md b/nginx-instance-manager/docker-deployment/contrib/docker-compose/README.md similarity index 100% rename from NGINX-NIM-Docker/contrib/docker-compose/README.md rename to nginx-instance-manager/docker-deployment/contrib/docker-compose/README.md diff --git a/NGINX-NIM-Docker/contrib/docker-compose/docker-compose.yaml b/nginx-instance-manager/docker-deployment/contrib/docker-compose/docker-compose.yaml similarity index 100% rename from NGINX-NIM-Docker/contrib/docker-compose/docker-compose.yaml rename to nginx-instance-manager/docker-deployment/contrib/docker-compose/docker-compose.yaml diff --git a/NGINX-NIM-Docker/contrib/grafana/NGINX_NIM2_Telemetry_Grafana_Dashboard.json b/nginx-instance-manager/docker-deployment/contrib/grafana/NGINX_NIM2_Telemetry_Grafana_Dashboard.json similarity index 100% rename from NGINX-NIM-Docker/contrib/grafana/NGINX_NIM2_Telemetry_Grafana_Dashboard.json rename to nginx-instance-manager/docker-deployment/contrib/grafana/NGINX_NIM2_Telemetry_Grafana_Dashboard.json diff --git a/NGINX-NIM-Docker/contrib/grafana/README.md b/nginx-instance-manager/docker-deployment/contrib/grafana/README.md similarity index 100% rename from NGINX-NIM-Docker/contrib/grafana/README.md rename to nginx-instance-manager/docker-deployment/contrib/grafana/README.md diff --git a/NGINX-NIM-Docker/contrib/grafana/clickhouse-datasource.png b/nginx-instance-manager/docker-deployment/contrib/grafana/clickhouse-datasource.png similarity index 100% rename from NGINX-NIM-Docker/contrib/grafana/clickhouse-datasource.png rename to nginx-instance-manager/docker-deployment/contrib/grafana/clickhouse-datasource.png diff --git a/NGINX-NIM-Docker/contrib/grafana/grafana-dashboard.png b/nginx-instance-manager/docker-deployment/contrib/grafana/grafana-dashboard.png similarity index 100% rename from NGINX-NIM-Docker/contrib/grafana/grafana-dashboard.png rename to nginx-instance-manager/docker-deployment/contrib/grafana/grafana-dashboard.png diff --git a/NGINX-NIM-Docker/contrib/helm-installer/NGINX-NMS-Installer.sh b/nginx-instance-manager/docker-deployment/contrib/helm-installer/NGINX-NMS-Installer.sh similarity index 100% rename from NGINX-NIM-Docker/contrib/helm-installer/NGINX-NMS-Installer.sh rename to nginx-instance-manager/docker-deployment/contrib/helm-installer/NGINX-NMS-Installer.sh diff --git a/NGINX-NIM-Docker/contrib/helm-installer/README.md b/nginx-instance-manager/docker-deployment/contrib/helm-installer/README.md similarity index 100% rename from NGINX-NIM-Docker/contrib/helm-installer/README.md rename to nginx-instance-manager/docker-deployment/contrib/helm-installer/README.md diff --git a/NGINX-NIM-Docker/contrib/pvc-provisioner/README.md b/nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/README.md similarity index 100% rename from NGINX-NIM-Docker/contrib/pvc-provisioner/README.md rename to nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/README.md diff --git a/NGINX-NIM-Docker/contrib/pvc-provisioner/dynamic-nfs-storage.yaml b/nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/dynamic-nfs-storage.yaml similarity index 100% rename from NGINX-NIM-Docker/contrib/pvc-provisioner/dynamic-nfs-storage.yaml rename to nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/dynamic-nfs-storage.yaml diff --git a/NGINX-NIM-Docker/contrib/pvc-provisioner/test-delete.yaml b/nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/test-delete.yaml similarity index 100% rename from NGINX-NIM-Docker/contrib/pvc-provisioner/test-delete.yaml rename to nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/test-delete.yaml diff --git a/NGINX-NIM-Docker/contrib/pvc-provisioner/test-retain.yaml b/nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/test-retain.yaml similarity index 100% rename from NGINX-NIM-Docker/contrib/pvc-provisioner/test-retain.yaml rename to nginx-instance-manager/docker-deployment/contrib/pvc-provisioner/test-retain.yaml diff --git a/NGINX-NIM-Docker/manifests/0.clickhouse.yaml b/nginx-instance-manager/docker-deployment/manifests/0.clickhouse.yaml similarity index 100% rename from NGINX-NIM-Docker/manifests/0.clickhouse.yaml rename to nginx-instance-manager/docker-deployment/manifests/0.clickhouse.yaml diff --git a/NGINX-NIM-Docker/manifests/1.nginx-nim.yaml b/nginx-instance-manager/docker-deployment/manifests/1.nginx-nim.yaml similarity index 100% rename from NGINX-NIM-Docker/manifests/1.nginx-nim.yaml rename to nginx-instance-manager/docker-deployment/manifests/1.nginx-nim.yaml diff --git a/NGINX-NIM-Docker/manifests/2.grafana.yaml b/nginx-instance-manager/docker-deployment/manifests/2.grafana.yaml similarity index 100% rename from NGINX-NIM-Docker/manifests/2.grafana.yaml rename to nginx-instance-manager/docker-deployment/manifests/2.grafana.yaml diff --git a/NGINX-NIM-Docker/manifests/3.vs.yaml b/nginx-instance-manager/docker-deployment/manifests/3.vs.yaml similarity index 100% rename from NGINX-NIM-Docker/manifests/3.vs.yaml rename to nginx-instance-manager/docker-deployment/manifests/3.vs.yaml diff --git a/NGINX-NIM-Docker/manifests/certs/cert-install.sh b/nginx-instance-manager/docker-deployment/manifests/certs/cert-install.sh similarity index 100% rename from NGINX-NIM-Docker/manifests/certs/cert-install.sh rename to nginx-instance-manager/docker-deployment/manifests/certs/cert-install.sh diff --git a/NGINX-NIM-Docker/manifests/certs/nim2.f5.ff.lan.cnf b/nginx-instance-manager/docker-deployment/manifests/certs/nim2.f5.ff.lan.cnf similarity index 100% rename from NGINX-NIM-Docker/manifests/certs/nim2.f5.ff.lan.cnf rename to nginx-instance-manager/docker-deployment/manifests/certs/nim2.f5.ff.lan.cnf diff --git a/NGINX-NIM-Docker/manifests/configmaps/config.xml b/nginx-instance-manager/docker-deployment/manifests/configmaps/config.xml similarity index 100% rename from NGINX-NIM-Docker/manifests/configmaps/config.xml rename to nginx-instance-manager/docker-deployment/manifests/configmaps/config.xml diff --git a/NGINX-NIM-Docker/manifests/configmaps/users.xml b/nginx-instance-manager/docker-deployment/manifests/configmaps/users.xml similarity index 100% rename from NGINX-NIM-Docker/manifests/configmaps/users.xml rename to nginx-instance-manager/docker-deployment/manifests/configmaps/users.xml diff --git a/NGINX-NIM-Docker/nim-files/.placeholder b/nginx-instance-manager/docker-deployment/nim-files/.placeholder similarity index 100% rename from NGINX-NIM-Docker/nim-files/.placeholder rename to nginx-instance-manager/docker-deployment/nim-files/.placeholder diff --git a/NGINX-NIM-Docker/scripts/buildNIM.sh b/nginx-instance-manager/docker-deployment/scripts/buildNIM.sh similarity index 100% rename from NGINX-NIM-Docker/scripts/buildNIM.sh rename to nginx-instance-manager/docker-deployment/scripts/buildNIM.sh diff --git a/NGINX-NIM-Docker/scripts/nimDockerStart.sh b/nginx-instance-manager/docker-deployment/scripts/nimDockerStart.sh similarity index 100% rename from NGINX-NIM-Docker/scripts/nimDockerStart.sh rename to nginx-instance-manager/docker-deployment/scripts/nimDockerStart.sh diff --git a/nginx-one/appworld/README.md b/nginx-one/appworld/README.md deleted file mode 100644 index 5ab7f60..0000000 --- a/nginx-one/appworld/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# NGINX One Console Demo - -The material for this demo can be found within the NGINX One Workshop GitHub repository at . diff --git a/nginx-workshops/README.md b/nginx-workshops/README.md new file mode 100644 index 0000000..b5c316b --- /dev/null +++ b/nginx-workshops/README.md @@ -0,0 +1,8 @@ +# List of all Public Workshops + +|Title|Public Workshop Repo| +|-----|-----| +| NGINX Basics | | +| NGINX Ingress Controller | | +| NGINX as a Service for Azure (NGINXaaS) | | +| NGINX One Console | | \ No newline at end of file diff --git a/NGINX-Advanced-Healthcheck/README.md b/nginx/advanced-healthchecks/README.md similarity index 100% rename from NGINX-Advanced-Healthcheck/README.md rename to nginx/advanced-healthchecks/README.md diff --git a/NGINX-Advanced-Healthcheck/health-api/README.md b/nginx/advanced-healthchecks/health-api/README.md similarity index 100% rename from NGINX-Advanced-Healthcheck/health-api/README.md rename to nginx/advanced-healthchecks/health-api/README.md diff --git a/NGINX-Advanced-Healthcheck/health-api/requirements.txt b/nginx/advanced-healthchecks/health-api/requirements.txt similarity index 100% rename from NGINX-Advanced-Healthcheck/health-api/requirements.txt rename to nginx/advanced-healthchecks/health-api/requirements.txt diff --git a/NGINX-Advanced-Healthcheck/health-api/serverstats.py b/nginx/advanced-healthchecks/health-api/serverstats.py similarity index 100% rename from NGINX-Advanced-Healthcheck/health-api/serverstats.py rename to nginx/advanced-healthchecks/health-api/serverstats.py diff --git a/NGINX-Advanced-Healthcheck/img/lab-setup.png b/nginx/advanced-healthchecks/img/lab-setup.png similarity index 100% rename from NGINX-Advanced-Healthcheck/img/lab-setup.png rename to nginx/advanced-healthchecks/img/lab-setup.png diff --git a/NGINX-Advanced-Healthcheck/img/logicflow.png b/nginx/advanced-healthchecks/img/logicflow.png similarity index 100% rename from NGINX-Advanced-Healthcheck/img/logicflow.png rename to nginx/advanced-healthchecks/img/logicflow.png diff --git a/NGINX-Advanced-Healthcheck/img/nginx-dashboard.png b/nginx/advanced-healthchecks/img/nginx-dashboard.png similarity index 100% rename from NGINX-Advanced-Healthcheck/img/nginx-dashboard.png rename to nginx/advanced-healthchecks/img/nginx-dashboard.png diff --git a/NGINX-Advanced-Healthcheck/nginx/README.md b/nginx/advanced-healthchecks/nginx/README.md similarity index 100% rename from NGINX-Advanced-Healthcheck/nginx/README.md rename to nginx/advanced-healthchecks/nginx/README.md diff --git a/NGINX-Advanced-Healthcheck/nginx/conf.d/healthcheck.conf b/nginx/advanced-healthchecks/nginx/conf.d/healthcheck.conf similarity index 100% rename from NGINX-Advanced-Healthcheck/nginx/conf.d/healthcheck.conf rename to nginx/advanced-healthchecks/nginx/conf.d/healthcheck.conf diff --git a/NGINX-Advanced-Healthcheck/nginx/conf.d/healthcheck.js b/nginx/advanced-healthchecks/nginx/conf.d/healthcheck.js similarity index 100% rename from NGINX-Advanced-Healthcheck/nginx/conf.d/healthcheck.js rename to nginx/advanced-healthchecks/nginx/conf.d/healthcheck.js diff --git a/NGINX-Advanced-Healthcheck/nginx/conf.d/loadbalancer.conf b/nginx/advanced-healthchecks/nginx/conf.d/loadbalancer.conf similarity index 100% rename from NGINX-Advanced-Healthcheck/nginx/conf.d/loadbalancer.conf rename to nginx/advanced-healthchecks/nginx/conf.d/loadbalancer.conf diff --git a/NGINX-Advanced-Healthcheck/nginx/stream-conf.d/stream-loadbalancer.conf b/nginx/advanced-healthchecks/nginx/stream-conf.d/stream-loadbalancer.conf similarity index 100% rename from NGINX-Advanced-Healthcheck/nginx/stream-conf.d/stream-loadbalancer.conf rename to nginx/advanced-healthchecks/nginx/stream-conf.d/stream-loadbalancer.conf diff --git a/NGINX-Advanced-Healthcheck/webserver/README.md b/nginx/advanced-healthchecks/webserver/README.md similarity index 100% rename from NGINX-Advanced-Healthcheck/webserver/README.md rename to nginx/advanced-healthchecks/webserver/README.md diff --git a/NGINX-Advanced-Healthcheck/webserver/requirements.txt b/nginx/advanced-healthchecks/webserver/requirements.txt similarity index 100% rename from NGINX-Advanced-Healthcheck/webserver/requirements.txt rename to nginx/advanced-healthchecks/webserver/requirements.txt diff --git a/NGINX-Advanced-Healthcheck/webserver/webserver.py b/nginx/advanced-healthchecks/webserver/webserver.py similarity index 100% rename from NGINX-Advanced-Healthcheck/webserver/webserver.py rename to nginx/advanced-healthchecks/webserver/webserver.py diff --git a/NGINX-API-Steering/README.md b/nginx/api-steering/README.md similarity index 100% rename from NGINX-API-Steering/README.md rename to nginx/api-steering/README.md diff --git a/NGINX-API-Steering/apiserver/Dockerfile b/nginx/api-steering/apiserver/Dockerfile similarity index 100% rename from NGINX-API-Steering/apiserver/Dockerfile rename to nginx/api-steering/apiserver/Dockerfile diff --git a/NGINX-API-Steering/apiserver/apiserver.py b/nginx/api-steering/apiserver/apiserver.py similarity index 100% rename from NGINX-API-Steering/apiserver/apiserver.py rename to nginx/api-steering/apiserver/apiserver.py diff --git a/NGINX-API-Steering/apiserver/requirements.txt b/nginx/api-steering/apiserver/requirements.txt similarity index 100% rename from NGINX-API-Steering/apiserver/requirements.txt rename to nginx/api-steering/apiserver/requirements.txt diff --git a/NGINX-API-Steering/backend/Dockerfile b/nginx/api-steering/backend/Dockerfile similarity index 100% rename from NGINX-API-Steering/backend/Dockerfile rename to nginx/api-steering/backend/Dockerfile diff --git a/NGINX-API-Steering/backend/backend.py b/nginx/api-steering/backend/backend.py similarity index 100% rename from NGINX-API-Steering/backend/backend.py rename to nginx/api-steering/backend/backend.py diff --git a/NGINX-API-Steering/backend/db-dockercompose.json b/nginx/api-steering/backend/db-dockercompose.json similarity index 100% rename from NGINX-API-Steering/backend/db-dockercompose.json rename to nginx/api-steering/backend/db-dockercompose.json diff --git a/NGINX-API-Steering/backend/db-k8s.json b/nginx/api-steering/backend/db-k8s.json similarity index 100% rename from NGINX-API-Steering/backend/db-k8s.json rename to nginx/api-steering/backend/db-k8s.json diff --git a/NGINX-API-Steering/backend/requirements.txt b/nginx/api-steering/backend/requirements.txt similarity index 100% rename from NGINX-API-Steering/backend/requirements.txt rename to nginx/api-steering/backend/requirements.txt diff --git a/NGINX-API-Steering/docker-compose.yaml b/nginx/api-steering/docker-compose.yaml similarity index 100% rename from NGINX-API-Steering/docker-compose.yaml rename to nginx/api-steering/docker-compose.yaml diff --git a/NGINX-API-Steering/jwt/jwks.json b/nginx/api-steering/jwt/jwks.json similarity index 100% rename from NGINX-API-Steering/jwt/jwks.json rename to nginx/api-steering/jwt/jwks.json diff --git a/NGINX-API-Steering/jwt/jwtDecoder.sh b/nginx/api-steering/jwt/jwtDecoder.sh similarity index 100% rename from NGINX-API-Steering/jwt/jwtDecoder.sh rename to nginx/api-steering/jwt/jwtDecoder.sh diff --git a/NGINX-API-Steering/jwt/jwtEncoder.sh b/nginx/api-steering/jwt/jwtEncoder.sh similarity index 100% rename from NGINX-API-Steering/jwt/jwtEncoder.sh rename to nginx/api-steering/jwt/jwtEncoder.sh diff --git a/NGINX-API-Steering/kubernetes.yaml b/nginx/api-steering/kubernetes.yaml similarity index 100% rename from NGINX-API-Steering/kubernetes.yaml rename to nginx/api-steering/kubernetes.yaml diff --git a/NGINX-API-Steering/nginx-api-steering.sh b/nginx/api-steering/nginx-api-steering.sh similarity index 100% rename from NGINX-API-Steering/nginx-api-steering.sh rename to nginx/api-steering/nginx-api-steering.sh diff --git a/NGINX-API-Steering/nginx/Dockerfile b/nginx/api-steering/nginx/Dockerfile similarity index 100% rename from NGINX-API-Steering/nginx/Dockerfile rename to nginx/api-steering/nginx/Dockerfile diff --git a/NGINX-API-Steering/nginx/api.conf b/nginx/api-steering/nginx/api.conf similarity index 100% rename from NGINX-API-Steering/nginx/api.conf rename to nginx/api-steering/nginx/api.conf diff --git a/NGINX-API-Steering/nginx/nginx.conf b/nginx/api-steering/nginx/nginx.conf similarity index 100% rename from NGINX-API-Steering/nginx/nginx.conf rename to nginx/api-steering/nginx/nginx.conf diff --git a/NGINX-API-Steering/nginx/steering.conf-dockercompose b/nginx/api-steering/nginx/steering.conf-dockercompose similarity index 100% rename from NGINX-API-Steering/nginx/steering.conf-dockercompose rename to nginx/api-steering/nginx/steering.conf-dockercompose diff --git a/NGINX-API-Steering/nginx/steering.conf-k8s b/nginx/api-steering/nginx/steering.conf-k8s similarity index 100% rename from NGINX-API-Steering/nginx/steering.conf-k8s rename to nginx/api-steering/nginx/steering.conf-k8s diff --git a/NGINX-API-Steering/nginx/steering.js b/nginx/api-steering/nginx/steering.js similarity index 100% rename from NGINX-API-Steering/nginx/steering.js rename to nginx/api-steering/nginx/steering.js diff --git a/NGINX-Docker-Image-Builder/Dockerfile.oss b/nginx/docker-image-builder/Dockerfile.oss similarity index 100% rename from NGINX-Docker-Image-Builder/Dockerfile.oss rename to nginx/docker-image-builder/Dockerfile.oss diff --git a/NGINX-Docker-Image-Builder/Dockerfile.plus b/nginx/docker-image-builder/Dockerfile.plus similarity index 100% rename from NGINX-Docker-Image-Builder/Dockerfile.plus rename to nginx/docker-image-builder/Dockerfile.plus diff --git a/NGINX-Docker-Image-Builder/Dockerfile.plus.unprivileged b/nginx/docker-image-builder/Dockerfile.plus.unprivileged similarity index 100% rename from NGINX-Docker-Image-Builder/Dockerfile.plus.unprivileged rename to nginx/docker-image-builder/Dockerfile.plus.unprivileged diff --git a/NGINX-Docker-Image-Builder/README.md b/nginx/docker-image-builder/README.md similarity index 100% rename from NGINX-Docker-Image-Builder/README.md rename to nginx/docker-image-builder/README.md diff --git a/NGINX-Docker-Image-Builder/container/start.sh b/nginx/docker-image-builder/container/start.sh similarity index 100% rename from NGINX-Docker-Image-Builder/container/start.sh rename to nginx/docker-image-builder/container/start.sh diff --git a/NGINX-Docker-Image-Builder/manifests/nginx-manifest.yaml b/nginx/docker-image-builder/manifests/nginx-manifest.yaml similarity index 100% rename from NGINX-Docker-Image-Builder/manifests/nginx-manifest.yaml rename to nginx/docker-image-builder/manifests/nginx-manifest.yaml diff --git a/NGINX-Docker-Image-Builder/scripts/build.sh b/nginx/docker-image-builder/scripts/build.sh similarity index 100% rename from NGINX-Docker-Image-Builder/scripts/build.sh rename to nginx/docker-image-builder/scripts/build.sh diff --git a/NGINX-Multicloud-Gateway/README.md b/nginx/multicloud-gateway/README.md similarity index 100% rename from NGINX-Multicloud-Gateway/README.md rename to nginx/multicloud-gateway/README.md diff --git a/NGINX-Multicloud-Gateway/images/mcgw-rewrite.jpg b/nginx/multicloud-gateway/images/mcgw-rewrite.jpg similarity index 100% rename from NGINX-Multicloud-Gateway/images/mcgw-rewrite.jpg rename to nginx/multicloud-gateway/images/mcgw-rewrite.jpg diff --git a/NGINX-Multicloud-Gateway/images/mcgw-steering.jpg b/nginx/multicloud-gateway/images/mcgw-steering.jpg similarity index 100% rename from NGINX-Multicloud-Gateway/images/mcgw-steering.jpg rename to nginx/multicloud-gateway/images/mcgw-steering.jpg diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/0.mcgw.ns.yaml b/nginx/multicloud-gateway/mcgw/mcgw/0.mcgw.ns.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/0.mcgw.ns.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/0.mcgw.ns.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/1.mcgw-test-backend-db.yaml b/nginx/multicloud-gateway/mcgw/mcgw/1.mcgw-test-backend-db.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/1.mcgw-test-backend-db.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/1.mcgw-test-backend-db.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/2.nginx.conf.yaml b/nginx/multicloud-gateway/mcgw/mcgw/2.nginx.conf.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/2.nginx.conf.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/2.nginx.conf.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/3.mcgw.js.yaml b/nginx/multicloud-gateway/mcgw/mcgw/3.mcgw.js.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/3.mcgw.js.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/3.mcgw.js.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/4.mcgw.conf.yaml b/nginx/multicloud-gateway/mcgw/mcgw/4.mcgw.conf.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/4.mcgw.conf.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/4.mcgw.conf.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/5.nginx-mcgw.yaml b/nginx/multicloud-gateway/mcgw/mcgw/5.nginx-mcgw.yaml similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/5.nginx-mcgw.yaml rename to nginx/multicloud-gateway/mcgw/mcgw/5.nginx-mcgw.yaml diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/certs/cert-install.sh b/nginx/multicloud-gateway/mcgw/mcgw/certs/cert-install.sh similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/certs/cert-install.sh rename to nginx/multicloud-gateway/mcgw/mcgw/certs/cert-install.sh diff --git a/NGINX-Multicloud-Gateway/mcgw/mcgw/certs/mcgw.ff.lan.cnf b/nginx/multicloud-gateway/mcgw/mcgw/certs/mcgw.ff.lan.cnf similarity index 100% rename from NGINX-Multicloud-Gateway/mcgw/mcgw/certs/mcgw.ff.lan.cnf rename to nginx/multicloud-gateway/mcgw/mcgw/certs/mcgw.ff.lan.cnf diff --git a/NGINX-Multicloud-Gateway/test-backend-db/Dockerfile b/nginx/multicloud-gateway/test-backend-db/Dockerfile similarity index 100% rename from NGINX-Multicloud-Gateway/test-backend-db/Dockerfile rename to nginx/multicloud-gateway/test-backend-db/Dockerfile diff --git a/NGINX-Multicloud-Gateway/test-backend-db/app.py b/nginx/multicloud-gateway/test-backend-db/app.py similarity index 100% rename from NGINX-Multicloud-Gateway/test-backend-db/app.py rename to nginx/multicloud-gateway/test-backend-db/app.py diff --git a/NGINX-SOAP-REST/README.md b/nginx/soap-to-rest/README.md similarity index 100% rename from NGINX-SOAP-REST/README.md rename to nginx/soap-to-rest/README.md diff --git a/NGINX-SOAP-REST/docker-compose.yaml b/nginx/soap-to-rest/docker-compose.yaml similarity index 100% rename from NGINX-SOAP-REST/docker-compose.yaml rename to nginx/soap-to-rest/docker-compose.yaml diff --git a/NGINX-SOAP-REST/echo-server/Dockerfile b/nginx/soap-to-rest/echo-server/Dockerfile similarity index 100% rename from NGINX-SOAP-REST/echo-server/Dockerfile rename to nginx/soap-to-rest/echo-server/Dockerfile diff --git a/NGINX-SOAP-REST/echo-server/echo-server.py b/nginx/soap-to-rest/echo-server/echo-server.py similarity index 100% rename from NGINX-SOAP-REST/echo-server/echo-server.py rename to nginx/soap-to-rest/echo-server/echo-server.py diff --git a/NGINX-SOAP-REST/ldap/connector/Dockerfile b/nginx/soap-to-rest/ldap/connector/Dockerfile similarity index 100% rename from NGINX-SOAP-REST/ldap/connector/Dockerfile rename to nginx/soap-to-rest/ldap/connector/Dockerfile diff --git a/NGINX-SOAP-REST/ldap/connector/ldap-connector.py b/nginx/soap-to-rest/ldap/connector/ldap-connector.py similarity index 100% rename from NGINX-SOAP-REST/ldap/connector/ldap-connector.py rename to nginx/soap-to-rest/ldap/connector/ldap-connector.py diff --git a/NGINX-SOAP-REST/ldap/connector/requirements.txt b/nginx/soap-to-rest/ldap/connector/requirements.txt similarity index 100% rename from NGINX-SOAP-REST/ldap/connector/requirements.txt rename to nginx/soap-to-rest/ldap/connector/requirements.txt diff --git a/NGINX-SOAP-REST/ldap/ldif/setup.ldif b/nginx/soap-to-rest/ldap/ldif/setup.ldif similarity index 100% rename from NGINX-SOAP-REST/ldap/ldif/setup.ldif rename to nginx/soap-to-rest/ldap/ldif/setup.ldif diff --git a/NGINX-SOAP-REST/nginx-soap-rest.sh b/nginx/soap-to-rest/nginx-soap-rest.sh similarity index 100% rename from NGINX-SOAP-REST/nginx-soap-rest.sh rename to nginx/soap-to-rest/nginx-soap-rest.sh diff --git a/NGINX-SOAP-REST/nginx/Dockerfile b/nginx/soap-to-rest/nginx/Dockerfile similarity index 100% rename from NGINX-SOAP-REST/nginx/Dockerfile rename to nginx/soap-to-rest/nginx/Dockerfile diff --git a/NGINX-SOAP-REST/nginx/nginx.conf b/nginx/soap-to-rest/nginx/nginx.conf similarity index 100% rename from NGINX-SOAP-REST/nginx/nginx.conf rename to nginx/soap-to-rest/nginx/nginx.conf diff --git a/NGINX-SOAP-REST/nginx/soaprest.conf b/nginx/soap-to-rest/nginx/soaprest.conf similarity index 100% rename from NGINX-SOAP-REST/nginx/soaprest.conf rename to nginx/soap-to-rest/nginx/soaprest.conf diff --git a/NGINX-SOAP-REST/nginx/soaprest.js b/nginx/soap-to-rest/nginx/soaprest.js similarity index 100% rename from NGINX-SOAP-REST/nginx/soaprest.js rename to nginx/soap-to-rest/nginx/soaprest.js diff --git a/NGINX-SOAP-REST/source-of-truth/Dockerfile b/nginx/soap-to-rest/source-of-truth/Dockerfile similarity index 100% rename from NGINX-SOAP-REST/source-of-truth/Dockerfile rename to nginx/soap-to-rest/source-of-truth/Dockerfile diff --git a/NGINX-SOAP-REST/source-of-truth/requirements.txt b/nginx/soap-to-rest/source-of-truth/requirements.txt similarity index 100% rename from NGINX-SOAP-REST/source-of-truth/requirements.txt rename to nginx/soap-to-rest/source-of-truth/requirements.txt diff --git a/NGINX-SOAP-REST/source-of-truth/source-of-truth.py b/nginx/soap-to-rest/source-of-truth/source-of-truth.py similarity index 100% rename from NGINX-SOAP-REST/source-of-truth/source-of-truth.py rename to nginx/soap-to-rest/source-of-truth/source-of-truth.py