Skip to content

Commit

Permalink
Upstream merge (#543)
Browse files Browse the repository at this point in the history
* Fix permission issue in docker all in one image (cloudfoundry#4770)

* Update website version, tweak github action (cloudfoundry#4771)

* Improve the presentation of advanced options in endpoint registration (cloudfoundry#4766)

* Reduce size of text and icons in page header (cloudfoundry#4758)

* Use a subtle color for the app page header (cloudfoundry#4765)

* Reduce size of text and icons in page header

* Change app page header color

* Add support for no authentication (cloudfoundry#4386)

* Add supprot for no authentication

* Fix backend unit tests

* Fix backend test failure

* Address PR feedback

* Address PR feedback

* Fix backend unit test mock

* Turn off auto-logout if the user can not log off

* Ensure local auth user can edit profile

* Fix unit tests

Co-authored-by: Richard Cox <[email protected]>

* Upgrade to Angular 10 (cloudfoundry#4724)

* update packages pre angular update

* Fix TS 4.x error

* After ng update @angular/core @angular/cli

* update @angular/cdk for ng update @angular/material

* after ng update @angular/material

* @angular-builders/custom-webpack fix
- ngtypecheck.ts part of build not used
- import `webpack` not known

* Row fix part 1

* ngrx-store-localstorage upgrade

* after ng update @ngrx/store

* after ng update @swimlane/ngx-charts

* After @swimlane/ngx-graph bump

* fixes for npm install warnings

* row fixes part 2

* Fix most of  common js deps, bring in typings
- seems the build now complains when bringing in js depedencies
  ```
  CommonJS or AMD dependencies can cause optimization bailouts.
  For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies
  ```
- the fix is to allow them, though we should look to moving away int eh future
- dependencies are...
  - moment-timezone.... us
  - js-yaml.... us
  - webcola & dagre... ngx-graph
  - all others come from @cfstratos/ajsf-core

* Ensure any cards that override abtract properties with @input have their get & set

* Lint fixes

* commas not semi colons in object types

* Roll back TableCellCustomComponent naming change change

* changes following self review

* Roll back ngx-monaco-editor from 10.0.0-beta.1 to 9.0.0
- beta 1 is missing loader.js file, which is loaded by beta 1
- see atularen/ngx-monaco-editor#185 (comment)
- also tidy location of monaco assets

* Fix unit tests

* Fix Application Deploy (problem #2)

* Add debig for Application Deploy (problem #1)

* Fix Org Spaces List

* Fix Space Routes List

* Safer api keys test

* fix app wall test

* Fix Application Wall Tests

* More debug for Application Deploy

* Add more debugging

* Revert "Add more debugging"

This reverts commit 41bd7a0.

* Revert "More debug for Application Deploy"

This reverts commit 008e91e.

* Revert "Add debig for Application Deploy (problem #1)"

This reverts commit 14e53c0.

* Improve home page view (cloudfoundry#4740)

* Allow k8s namespaces to be added as favourites

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Fix test imports

* Fix unit tests

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Fix unit test

* Prevent password show/hide icon from receiving focus (cloudfoundry#4776)

* Prevent password show/hide icon from receiving focus

* Fix lint issues

* Create defaults list component (cloudfoundry#3987)

* Port downstream list filter changes
- #185
- Apply to feature flag table

* Fix e2e tests

* Create defaults list component
- Intermediate component between simple list and full list
- Supply as little config as simple list, all of full list or anywhere in between

* Fix test code

* Major WIP

* Simple change

* Trivial change

* Trivial Change

* WIP

* WIP

* Tidying up

* Avoid chicken & egg linting issue

* Fix unit tests

* Fix another test

* Fix bug where all users were being fetched instead of just those in a cf
- best case both cf's connected as admins and call takes a long time
- worst case one cf isn't admin and call fails

* Fix pick --> omit

* Fix typing

* Fixes after merge

* WIP

* Fix unit test

* Fixes after merge

* Add comments, tidy up

* Fix unit tests

* Bump gopkg.in/DATA-DOG/go-sqlmock.v1 in /src/jetstream (cloudfoundry#4733)

Bumps [gopkg.in/DATA-DOG/go-sqlmock.v1](https://github.com/DATA-DOG/go-sqlmock) from 1.3.0 to 1.5.0.
- [Release notes](https://github.com/DATA-DOG/go-sqlmock/releases)
- [Commits](DATA-DOG/go-sqlmock@v1.3.0...v1.5.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Bump github.com/golang/mock from 1.2.0 to 1.4.4 in /src/jetstream (cloudfoundry#4732)

Bumps [github.com/golang/mock](https://github.com/golang/mock) from 1.2.0 to 1.4.4.
- [Release notes](https://github.com/golang/mock/releases)
- [Changelog](https://github.com/golang/mock/blob/master/.goreleaser.yml)
- [Commits](golang/mock@v1.2.0...v1.4.4)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Fix lint issue (cloudfoundry#4783)

* Endpoint plugins configurable via YAML (cloudfoundry#4751)

* Add proxy single request API endpoint

* Add endpoint plugin generation from a YAML file

* Deploy to CF from private GitHub and GitLab repos

* Use subtypes for YAML generated endpoints

* Nicer YAML format; ignore unknown endpoint types in the DB

* Debug issues with mc CLI and minio server (cloudfoundry#4790)

* Move git tools and some components into their own package (cloudfoundry#4752)

* Move git tools and some components into their own package
- this then becomes more of a git library
- includes git
  - entities (and new git endpoint currently hidden), effects, actions, etc
  - commit list base items
  - git scm service and related items

* fix unit tests

* Update public_api.ts

* Update public_api.ts

* Fix lint issues

Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>

* Don't fail if we can't access the GitHub API (cloudfoundry#4779)

* Fix ngDestroy bug on list view component (cloudfoundry#4781)

* Fix size and position of header notification badge icon (cloudfoundry#4778)

* Fix size and position of header notification badge icon

* Ensure override also applies to dark mode
- dark mode brings back in i think specific overrides by material design
- ensure our overrides are more specific
- flicking between light/dark mode now shows no difference

Co-authored-by: Richard Cox <[email protected]>

* Fix helm endpoint link (cloudfoundry#4777)

* Prevent password show/hide icon from receiving focus

* Fix lint issues

* Clicking on a helm repository endpoint should fitler to show it's charts only

* Fix for unit test

* Address PR feedback

* Tidy up and refactor user favorites (cloudfoundry#4757)

* Allow k8s namespaces to be added as favourites

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix merge issue

* Fix merge issue

* Fix kube favorites not showing and sizing issue

* Fix kube endpoint card shortcuts

* Reinstate entity validation checks for CF app/org/space

* Fix favorite validation

* Tidy ups

* Fix merge issue

* Remove unrelated change

* Address PR feedback

* Bug fixes

* Address PR feedback

* Fix link for kubernetes endpoints

* Move test docker app off of docker hub to avoid rate limiting (cloudfoundry#4802)

* Move test docker app off of docker hub to avoid rate limiting

* Fix image reference

* Handle table cell get/setters better (cloudfoundry#4799)

- get and set were moved into abstract base class as part of ts bump
- we now need to ensure we get/set the correct way
- also contains minor cell tidy ups

* Fix link for metrics endpoints (cloudfoundry#4800)

* Fix issue where username/password are not encoded for basic auth (cloudfoundry#4796)

* Metrics: Ensure Stratos Metrics metadata file is optional (cloudfoundry#4801)

* Fix link for metrics endpoints

* Ensure metrics works with plain Prometheus

* Remove test code

* Slight optimization in if

* Update terminology for SSO Accept List and add to Helm Chart docs (cloudfoundry#4797)

* Docuement SSO Accept List and rename terminology

* Use Allow not Accept

* Update log message

* Remove debug logging

* Document SSO_OPTIONS

* Fix double build when using ng serve (cloudfoundry#4805)

* Fix alignment of no content mesasges on home page view (cloudfoundry#4809)

* fix unicode rendering in application logstreams (cloudfoundry#4808)

* User Favorites: Further refactoring to simplify the code base (cloudfoundry#4798)

* Allow k8s namespaces to be added as favourites

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix merge issue

* Fix merge issue

* Fix kube favorites not showing and sizing issue

* Fix kube endpoint card shortcuts

* Reinstate entity validation checks for CF app/org/space

* Fix favorite validation

* Tidy ups

* Fix merge issue

* Remove unrelated change

* Address PR feedback

* Bug fixes

* User Favorites: More refactoring to simplify

* Fix merge issues

* More merge fixes

* Fix issue with front-end unit tests

* Fix unit test issue

* Remove unused import

* chore: remove trailing comma as this is a non standard (cloudfoundry#4815)

* remove trailing comma as this is a non standard

* remove trailing comma as this is a non standard

* remove trailing comma as this is a non standard

* Allow backup/restore plugin to be enabled/disabled (cloudfoundry#4818)

* Home page: Make configurable showing all endpoints or just favorites (cloudfoundry#4810)

* Fix alignment of no content mesasges on home page view

* Allow home view to show all endpoints are just favorites

* Fix unit tests

* FIx backend test

* Changes following review

* Fix backend unit test

Co-authored-by: Richard Cox <[email protected]>

* Deploy Applications from Enterprise GitHub and GitLab (cloudfoundry#4782)

* Frontend for new yaml based git endpoints
- register github.com and gitlab.com endpoints and connect with credentials
- register and connect to github and gitlan enterprise instances
- select these as sources when deploying a cf application

* Add proxy single request API endpoint

* Add endpoint plugin generation from a YAML file

* Deploy to CF from private GitHub and GitLab repos

* Use subtypes for YAML generated endpoints

* Nicer YAML format; ignore unknown endpoint types in the DB

* Fix merge issues and add icon indicator for private repositories

* Fix lint issues

* Add details component to show username and avatar on endpoint card

* Various fixes and improvements

* Fix lint issue

* Fix merge issues

* Unit test fixes

* Unit test fix following merge

* One more unit test fix

* Fix backend unit tests

* Fix the deploy types todo (in a verbose way)

* Ignore commit id when possible

* Fix redeploy stepper

* Fix minor bugs in new register git stepper

* multiple fixes, remaining todos

* update github/gitlab connect readme's, including scope info

* In connect helper remove duped header

* Fix multiple gitlab issues

* Fix deploy app home screen link for github/gitlab with credentials

* Ensure app git tab only shows if we have access to repo
- can happen if others view app deployed via private repo

* Fix clone url & improve error messaging

* Improve cf app summary page git info

* Fix issue where...
- we're waiting for an endpoint that doesn't exist.. in an effect
- that endpoint then is created
- the effect then fires off the request... long after it should have stopped

* Fix multiple gitlab enterprise issues
- enterprise gits weren't showing as deploy source types
- enterprise gits that weren't connected failed to work (fetching data & deploying)

* Fix git enterprise ssl setting, provide hint at time of url required

* Show private repo indicator on app git tab

* app git tab: handle git fetch failure beter
- also rework observables in page

* Changes following quick self review

* Fix linting

* Fixes following testing

* Use enum for github string

* Ensure Git entities associated with an endpoint are removed on endpoint unregister/disconnect

* Fix unit test

* Tidy up backend changes

* Update app summary page

* Show no content message if app git tab cannot show info

* display password field instead of text area for token

* other changes following review

* Fix other issues raised in review (all from single comment)

* Fix frontend after updated backend

* Apply path escaping fix when url is recreated

* Fix some of the e2e tests

* Fixes after testing

* Fix more e2e tests

* Changes following review

Co-authored-by: Richard Cox <[email protected]>
Co-authored-by: Ivan Kapelyukhin <[email protected]>

* Bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 in /src/jetstream (cloudfoundry#4817)

Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/go-yaml/yaml/releases)
- [Commits](go-yaml/yaml@v2.3.0...v2.4.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Fix ever-increasing array of snackbar references (cloudfoundry#4820)

* Fix ever-increasing array of snackbar references

* Fix isse where latest is always null

* Fix snackbar service

* K8s add support for more resources (cloudfoundry#4780)

* k8s: Add support for more resource types in a generic way

* Unit test fix

* WIP

* Fixes for pods view

* Tidy ups

* Add more resource types

* Fix lint issues

* Fix build issue

* Fix unit test

* Unit test fix

* Fix unit tests

* Fix lint issue

* RE-arrange kube entity creation
- now assign directly to kube entity catalog
- to access custom kube generator resources have to do some funnies in
  kubernetes-tab-base.component.ts

* Fix services in namespace view
- kube guid and namespace was mixed up
- now follow standard pattern of kube guid then namespace in ctor

* Changes following review

* Fix unit tests

Co-authored-by: Richard Cox <[email protected]>

* Persist list settings over refresh (cloudfoundry#4405)

* WIP

* Add list reset button & list button tooltips

* Few tidy ups, add clear local storage feature

* Tweak profile settings section

* WIP

* WIP

* only store pagination sections from lists

* Fix clear and auto select multi filter/s on reset

* Ingore invalid values

* Super basic encryption of pag section

* fix reset

* Fix max list count & multi-entity selectors stickyness

* tidying up

* Fix linting

* Fix unit tests

* Changes following review #1

* Changes following review #2

* Changes following review no. 3

* Fix warning on first load

* Fix show org/space e2e failures

* improve delete service e2e tests

* Ensure list is card mode before waiting to find a card

* Remove stray line

* Fix linting

* Don't use generic url validation for kube endpoints (cloudfoundry#4826)

- this was recently added
- false negative for minikube url (https://192.168.39.159:8443)

* Improvement and fix for no-content component (cloudfoundry#4827)

* Improvements and fixes for no-content component
- add colour to improve monotone views on first load
- fix issue where no-content header arrow failed to show in production
  (see angular/angular-cli#17440)

* Fix another opacity percentage
- seen in import kube table edit endpoint name cell

* Bump github.com/mattn/go-sqlite3 from 1.13.0 to 1.14.5 in /src/jetstream (cloudfoundry#4816)

Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.13.0 to 1.14.5.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](mattn/go-sqlite3@v1.13.0...v1.14.5)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Document deployment with an ingress; make ingress host optional (cloudfoundry#4793)

* Minor Kube Fixes (cloudfoundry#4829)

* Fix home screen kube card pod link

* Ensure reset list filter button also resets helm chart repo filter

* Ensure we handle the case where the versions info is unable

* Fix link for namespaces

Co-authored-by: Neil MacDougall <[email protected]>

* K8s: More resource support - refinements (cloudfoundry#4822)

* Allow k8s namespaces to be added as favourites

* k8s: Add support for more resource types in a generic way

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Unit test fix

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* WIP

* Fixes for pods view

* Tidy ups

* Add more resource types

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix lint issues

* Fix build issue

* Fix unit test

* Unit test fix

* Fix unit tests

* More improvements

* Numerous improvements

* Fix lint issue

* RE-arrange kube entity creation
- now assign directly to kube entity catalog
- to access custom kube generator resources have to do some funnies in
  kubernetes-tab-base.component.ts

* Fix services in namespace view
- kube guid and namespace was mixed up
- now follow standard pattern of kube guid then namespace in ctor

* Fix merge issues

* Changes following review

* Fix unit tests

* Fix merge issue

* Fix merge issues

* Changes following merge

* Changes following merge

* Fix merge conflicts

* Only show analysis link when enabled

* Fix issue favoriting from side panel

* Fix expression changed error

* Fix expression changed errors

* Fix a few minor issues and unit test

* Remove old namespace components

* Remvoe TODO

* Delete fixes
- fixes to delete action param
- added to delete pods
- successEntityHandler doesn't run, so have to manually clear pagination sections

* Fix delete ns
- ensure delete action has correct guid
- ensure response has kube guid

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

* Fix PR issues

Co-authored-by: Richard Cox <[email protected]>

* Add additional information to new kube resource tables (cloudfoundry#4825)

* Allow k8s namespaces to be added as favourites

* k8s: Add support for more resource types in a generic way

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Unit test fix

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* WIP

* Fixes for pods view

* Tidy ups

* Add more resource types

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix lint issues

* Fix build issue

* Fix unit test

* Unit test fix

* Fix unit tests

* More improvements

* Numerous improvements

* Fix lint issue

* RE-arrange kube entity creation
- now assign directly to kube entity catalog
- to access custom kube generator resources have to do some funnies in
  kubernetes-tab-base.component.ts

* Fix services in namespace view
- kube guid and namespace was mixed up
- now follow standard pattern of kube guid then namespace in ctor

* Fix merge issues

* Changes following review

* Fix unit tests

* Fix merge issue

* Fix merge issues

* Changes following merge

* Changes following merge

* Add additional information to new kube resource tables

* Fix merge conflicts

* Only show analysis link when enabled

* Fix issue favoriting from side panel

* Fix expression changed error

* Fix expression changed errors

* Fix a few minor issues and unit test

* Remove old namespace components

* Remvoe TODO

* Fix merge issue

* Fix PR issues

* Delete fixes
- fixes to delete action param
- added to delete pods
- successEntityHandler doesn't run, so have to manually clear pagination sections

* Fix delete ns
- ensure delete action has correct guid
- ensure response has kube guid

* Don't use generic url validation for kube endpoints (cloudfoundry#4826)

- this was recently added
- false negative for minikube url (https://192.168.39.159:8443)

* Improvement and fix for no-content component (cloudfoundry#4827)

* Improvements and fixes for no-content component
- add colour to improve monotone views on first load
- fix issue where no-content header arrow failed to show in production
  (see angular/angular-cli#17440)

* Fix another opacity percentage
- seen in import kube table edit endpoint name cell

* Bump github.com/mattn/go-sqlite3 from 1.13.0 to 1.14.5 in /src/jetstream (cloudfoundry#4816)

Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.13.0 to 1.14.5.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](mattn/go-sqlite3@v1.13.0...v1.14.5)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Document deployment with an ingress; make ingress host optional (cloudfoundry#4793)

* Minor Kube Fixes (cloudfoundry#4829)

* Fix home screen kube card pod link

* Ensure reset list filter button also resets helm chart repo filter

* Ensure we handle the case where the versions info is unable

* Fix link for namespaces

Co-authored-by: Neil MacDougall <[email protected]>

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>

* Improve SSO documentation with detailed UAA setup (cloudfoundry#4833)

Document how to properly setup UAA client in production environment, with
proper listing in login home page.

* Add additional kube resources to Workload page (cloudfoundry#4830)

* Allow k8s namespaces to be added as favourites

* k8s: Add support for more resource types in a generic way

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Unit test fix

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* WIP

* Fixes for pods view

* Tidy ups

* Add more resource types

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix lint issues

* Fix build issue

* Fix unit test

* Unit test fix

* Fix unit tests

* More improvements

* Numerous improvements

* Fix lint issue

* RE-arrange kube entity creation
- now assign directly to kube entity catalog
- to access custom kube generator resources have to do some funnies in
  kubernetes-tab-base.component.ts

* Fix services in namespace view
- kube guid and namespace was mixed up
- now follow standard pattern of kube guid then namespace in ctor

* Fix merge issues

* Changes following review

* Fix unit tests

* Fix merge issue

* Fix merge issues

* Changes following merge

* Changes following merge

* Fix merge conflicts

* Only show analysis link when enabled

* Fix issue favoriting from side panel

* Fix expression changed error

* Fix expression changed errors

* Fix a few minor issues and unit test

* Remove old namespace components

* Remvoe TODO

* Add additional kube resources to Workload page
Two small todos left
- tidy up process in helm-release-socket-service
- switch service and pods view over to new process and remove old components/files

* Convert workload pods and services view to standard resource views

* Tidy up HelmReleaseSocketService

* Delete fixes
- fixes to delete action param
- added to delete pods
- successEntityHandler doesn't run, so have to manually clear pagination sections

* Fix delete ns
- ensure delete action has correct guid
- ensure response has kube guid

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

* Fix PR issues

* remove fluff from kube generator

* Fixes post merge

* Add additional information to new kube resource tables (cloudfoundry#4825)

* Allow k8s namespaces to be added as favourites

* k8s: Add support for more resource types in a generic way

* Improve the home page

* Fix lint issue

* Tweaks and refactoring

* Add separator to layout menu

* Improve incremental loading

* Various tidyups and improvements

* Tidy ups and improvemts to async loading

* Fix progress spinner alignment

* Unscubribe

* Minor bug fixes and a few tidy ups

* Further tidy ups

* Fix front end unit tests

* Unit test fix

* Further unit tests fixes

* Endpoint card unit test fixes

* Fix unit tests

* Tidy up favorite card

* Further refinement to the UI

* Fix missing dates from recents on CF view

* Get app deploy from home screen working

* Add message for when no connected endpoints

* Unit test fixes

* Kubernetes Home Card unit test fixes

* Fix unit test error

* Move components to remove dependency on large shared module

* Fix unit test and add deploy tiles to CF Home Card

* Fix word wrap on favorite name

* Add tool tip

* Style tidy ups

* Minor tidy ups

* Check favorites exists before navigating to them

* Fix test imports

* First round of tidy ups of the user favorites code

* Further refactor to reduce the complexity of user favorites

* Fix unit tests

* Allow Kubernetes namespaces to be favorited

* Fix duplicate import

* Tidy ups

* e2e Debugging

* Fix for org delete e2e test

* E2e Test fix

* Refactor out common entity operator

* Slight refactor

* Fix frontend unit tests

* Unit test fix

* Address PR feedback so far

* Address PR feedback

* Fix connected endpoint state check on home screen

* Address PR feedback

* Restore apps link

* Improve typing

* Fix undefined error

* Fix unit test

* Fix ordering issue

* Add a default home card

* Fix frong end lint issues

* Merge fixes

* Fix unit tests

* WIP

* Fixes for pods view

* Tidy ups

* Add more resource types

* Fix lint issue

* Fix lint issue

* Fix unit test

* Fix lint issues

* Fix build issue

* Fix unit test

* Unit test fix

* Fix unit tests

* More improvements

* Numerous improvements

* Fix lint issue

* RE-arrange kube entity creation
- now assign directly to kube entity catalog
- to access custom kube generator resources have to do some funnies in
  kubernetes-tab-base.component.ts

* Fix services in namespace view
- kube guid and namespace was mixed up
- now follow standard pattern of kube guid then namespace in ctor

* Fix merge issues

* Changes following review

* Fix unit tests

* Fix merge issue

* Fix merge issues

* Changes following merge

* Changes following merge

* Add additional information to new kube resource tables

* Fix merge conflicts

* Only show analysis link when enabled

* Fix issue favoriting from side panel

* Fix expression changed error

* Fix expression changed errors

* Fix a few minor issues and unit test

* Remove old namespace components

* Remvoe TODO

* Fix merge issue

* Fix PR issues

* Delete fixes
- fixes to delete action param
- added to delete pods
- successEntityHandler doesn't run, so have to manually clear pagination sections

* Fix delete ns
- ensure delete action has correct guid
- ensure response has kube guid

* Don't use generic url validation for kube endpoints (cloudfoundry#4826)

- this was recently added
- false negative for minikube url (https://192.168.39.159:8443)

* Improvement and fix for no-content component (cloudfoundry#4827)

* Improvements and fixes for no-content component
- add colour to improve monotone views on first load
- fix issue where no-content header arrow failed to show in production
  (see angular/angular-cli#17440)

* Fix another opacity percentage
- seen in import kube table edit endpoint name cell

* Bump github.com/mattn/go-sqlite3 from 1.13.0 to 1.14.5 in /src/jetstream (cloudfoundry#4816)

Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.13.0 to 1.14.5.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](mattn/go-sqlite3@v1.13.0...v1.14.5)

Signed-off-by: dependabot-preview[bot] <[email protected]>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Document deployment with an ingress; make ingress host optional (cloudfoundry#4793)

* Minor Kube Fixes (cloudfoundry#4829)

* Fix home screen kube card pod link

* Ensure reset list filter button also resets helm chart repo filter

* Ensure we handle the case where the versions info is unable

* Fix link for namespaces

Co-authored-by: Neil MacDougall <[email protected]>

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>

* Add comment after review

Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <[email protected]>
Co-authored-by: Neil MacDougall <[email protected]>

* Electron update (cloudfoundry#4811)

* Add supprot for no authentication

* Electron WIP

* Electron app WIP

* Add packaging

* Wait for backend to start

* Non-functional tidy ups

* Move desktop theme into desktop-extentions
- see run.sh for some enable/disable shinanigans

* Disable auto-log out when there's no auth
- need to tidy up how 'no auth' is determined

* Add Local flag

* Remove jetstream binary

* Allow SessionExpiry to be customised

* Add SESSION_STORE_EXPIRY customisation

* Re-enable loggin service
- should now be a no-op for no auth scenario (session never expires)

* Logging change

* Disable edit of local endpoints
- all the infomation is dynamically created

* Add local endpoint indication

* Allow packages to only supply routing module

* Split out profile settings into it's own component

* Add back in dark mode

* Add desktop settings page accessible via menu

* Fix SESSION_STORE_EXPIRY

* Add icon

* Add correct icon

* Add blank login page

* Add basic snackbar integration
- Send OS notification instead of snackbar (only covers snackbar service, not all snackbar ref uses)
- brings in ngx-electron to get easy isElectron test and access to ipcRenderer
- ignores 'return' type used to navigate to area of app

* Add a 'install' nav item into desktop-extensions
- this can be split out into a separate package

* Tweaks

* Tweak endpoint card

* Remove unused loadsh

* A fwe tweaks. Better about page

* Add file watch

* Add auto-update support

* Bug fixes for cf

* Only listen for endpointsChanged when running with eletron

* Mirror CF Disconnect/Unregister in config

* Add warning when disconnecting/unregistering local endpoints

* Improve look of DMG

* Tweak alert badge. Remove copyright icon

* Remove info logging that was debug

* Tweaks

* Persist last location, start from location

* Fix path

* Minor tweaks

* Tweaks

* Fix lint issues

* Fix compilation issues

* Fix backend test compilation

* Fix front-end unit tests

* Add test coverage file

* Fix build issue

* Fix merge issue

* Fix backend unit tests

* Fix setting bug and read version from file

* Exclude desktop extension by default

* More improvements

* Improvements for initial checkout

* Tweak to clean checkout experience

* Tidy up

* Bump version number to 4.4.0

* Fix bug that broke id on user menu button

* Fixes following merge

* Fix deploy app snack bar

* Ensure backend plugin is included

* Add kube desktop support

* Fix unit tests

* Fix backend build issue

* A few minor fixes

* Fix issue reading version file

Co-authored-by: Richard Cox <[email protected]>

* Bump ini from 1.3.5 to 1.3.7 in /electron (cloudfoundry#4837)

Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](npm/ini@v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update versions and change log (cloudfoundry#4835)

* Fix edit profile button visibility (cloudfoundry#4839)

- broken as part of electron changes
- canEdit$ was incorrectly removed

* Ensure initial/default plugins.yaml is included in build (cloudfoundry#4840)

* Ensure we copy plugins.yaml for AIO and Cloud Foundry (cloudfoundry#4841)

Co-authored-by: Richard Cox <[email protected]>
Co-authored-by: Richard Cox <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <[email protected]>
Co-authored-by: Geoffrey J. Teale <[email protected]>
Co-authored-by: pg2000 <[email protected]>
Co-authored-by: Benjamin Gandon <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • Loading branch information
9 people committed Dec 17, 2020
1 parent 2090d3c commit 6e6db9a
Show file tree
Hide file tree
Showing 801 changed files with 24,515 additions and 9,951 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/documentation-versioning.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
labels: |
ready for review
draft: false
base: ${{env.GITHUB_REF}}
base: ${GITHUB_REF##*/}
- name: Check output
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,13 @@ build/dev_config.json
e2e-reports/
.stratos-git-metadata.json
src/jetstream/jetstream
src/jetstream/console-database.db
console-database.db
src/jetstream/config.properties
src/jetstream/db/dbconf.yml
src/jetstream/plugins/monocular/chart-repo/chartrepo
src/jetstream/plugins/analysis/container/analyzers
src/jetstream/.helm-cache
src/jetstream/coverage.txt

# Automatically generated OpenAPI docs
src/jetstream/docs/
Expand Down Expand Up @@ -139,3 +140,11 @@ website/versions.json
website/versions-repo

/scan_tmp

# Desktop app using Electron
/electron/dist
/electron/node_modules
/electron/out
/electron/dev-ssl
/electron/jetstream
/electron/version
29 changes: 28 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Change Log

## 4.4.0

[Full Changelog](https://github.com/cloudfoundry/stratos/compare/4.3.0...4.4.0)

This release includes a number of improvements and fixes, including updates to visible Kubernetes resource types, deploying applications from private Github/Gitlab repositories and a greatly improved home page.

**Improvements:**

- Show more kube resource types for a cluster [\#4823](https://github.com/cloudfoundry/stratos/issues/4823)
- Add additional kube resources to Workload page [\#4831](https://github.com/cloudfoundry/stratos/issues/4831)
- Deploy Applications from Enterprise GitHub and GitLab [\#4828](https://github.com/cloudfoundry/stratos/issues/4828)
- Improve initial home page to show more meaningful data [\#4774](https://github.com/cloudfoundry/stratos/issues/4774)
- Persist list settings over browser refresh & add reset button [\#4814](https://github.com/cloudfoundry/stratos/issues/4814)
- Application logstreams incorrectly render unicode characters in the log. [\#4807](https://github.com/cloudfoundry/stratos/issues/4807)
- No option to set an SSOWhitelist with helm deployments [\#4785](https://github.com/cloudfoundry/stratos/issues/4785)
- Endpoint Registration: Advanced Client ID and Secret fields can be confusing [\#4767](https://github.com/cloudfoundry/stratos/issues/4767)
- Clicking on a helm repo endpoint should automatically set it as a filter in chart list [\#4760](https://github.com/cloudfoundry/stratos/issues/4760)
- Upgrade to Angular 10 [\#4725](https://github.com/cloudfoundry/stratos/issues/4725)
- Add ability to favourite Kubernetes Namespaces [\#4651](https://github.com/cloudfoundry/stratos/issues/4651)

**Fixes:**

- Can't connect Stratos to a non-Stratos-Metrics Prometheus [\#4804](https://github.com/cloudfoundry/stratos/issues/4804)
- UAA Setup UI does not accept client secret with # char [\#4789](https://github.com/cloudfoundry/stratos/issues/4789)
- Password show/hide icon takes tab focus [\#4768](https://github.com/cloudfoundry/stratos/issues/4768)


## 4.3.0

[Full Changelog](https://github.com/SUSE/stratos/compare/4.2.1...4.3.0)
Expand Down Expand Up @@ -220,7 +247,7 @@ This release contains a number of fixes and improvements:

**Improvements:**

- Apply SSO whitelist to additional places [\#4318](https://github.com/cloudfoundry/stratos/issues/4318)
- Apply SSO allow-list to additional places [\#4318](https://github.com/cloudfoundry/stratos/issues/4318)

**Fixes:**

Expand Down
59 changes: 59 additions & 0 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@
"build": {
"builder": "@angular-builders/custom-webpack:browser",
"options": {
"allowedCommonJsDependencies": [
"moment-timezone",
"js-yaml",
"webcola",
"dagre",
"lodash/isEqual",
"ajv",
"lodash/filter",
"lodash/map",
"lodash/uniqueId",
"lodash/cloneDeep"
],
"customWebpackConfig": {
"path": "./dist-devkit/build/main.js"
},
Expand Down Expand Up @@ -61,7 +73,23 @@
"replace": "src/frontend/packages/core/src/environments/environment.ts",
"with": "src/frontend/packages/core/src/environments/environment.prod.ts"
}]
},
"desktop": {
"optimization": false,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": false,
"fileReplacements": [{
"replace": "src/frontend/packages/core/src/environments/environment.ts",
"with": "src/frontend/packages/core/src/environments/environment.desktop.ts"
}]
}

}
},
"serve": {
Expand All @@ -77,6 +105,9 @@
"configurations": {
"production": {
"browserTarget": "stratos:build:production"
},
"desktop": {
"browserTarget": "stratos:build:desktop"
}
}
},
Expand Down Expand Up @@ -404,6 +435,34 @@
}
}
}
},
"git": {
"root": "src/frontend/packages/git",
"sourceRoot": "src/frontend/packages/git/src",
"projectType": "library",
"prefix": "lib",
"architect": {
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/frontend/packages/git/src/test.ts",
"tsConfig": "src/frontend/packages/git/tsconfig.spec.json",
"karmaConfig": "src/frontend/packages/git/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.json"
],
"tslintConfig": "src/frontend/packages/git/tslint.json",
"files": [
"src/frontend/packages/git/src/**/*.ts"
]
}
}
}
}

},
Expand Down
28 changes: 15 additions & 13 deletions deploy/Dockerfile.all-in-one
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,24 @@ RUN CERTS_PATH=/home/stratos/dev-certs ./generate_cert.sh
FROM splatform/stratos-bk-base:leap15_2
ARG CANARY_BUILD

COPY --from=jetstream-builder /home/stratos/deploy/db /src/deploy/db
COPY --from=jetstream-builder /home/stratos/dev-certs /srv/dev-certs
COPY --from=jetstream-builder /home/stratos/ui /srv/ui
COPY --from=jetstream-builder /home/stratos/jetstream /srv/jetstream
# Add a jetstream user so we don't run as root
RUN useradd -M -U -u 2000 jetstream
RUN usermod -aG users jetstream

# Ensure that the /srv folder is in the users group so that the jetstream user can write to it
RUN mkdir -p /srv && chgrp users /srv && chmod 775 /srv

COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/dev-certs /srv/dev-certs
COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/ui /srv/ui
COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/jetstream /srv/jetstream
RUN chmod +x /srv/jetstream
COPY --from=jetstream-builder /home/stratos/config.properties /srv/config.properties
COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/config.properties /srv/config.properties

# User Invite templates
COPY --from=jetstream-builder /home/stratos/src/jetstream/templates /srv/templates
COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/src/jetstream/templates /srv/templates

# Plugins.yaml configuration
COPY --chown=jetstream:users --from=jetstream-builder /home/stratos/src/jetstream/plugins.yaml /srv/plugins.yaml

# Enable persistence features if canary build flag is set
RUN if [ "x$CANARY_BUILD" != "x" ] ; then printf "\nFORCE_ENABLE_PERSISTENCE_FEATURES=true\n" >> /srv/config.properties ; fi
Expand All @@ -41,13 +50,6 @@ RUN if [ "x$CANARY_BUILD" != "x" ] ; then printf "\nENABLE_TECH_PREVIEW=true\n"

EXPOSE 5443

# Add a jetstream user so we don't run as root
RUN useradd -M -U -u 2000 jetstream
RUN usermod -aG users jetstream

# Ensure that the /srv folder is in the users group so that the jetstream user can write to it
RUN chgrp users /srv && chmod 775 /srv

USER jetstream

ENTRYPOINT ["./jetstream"]
1 change: 1 addition & 0 deletions deploy/Dockerfile.bk
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ RUN npm run build-backend

FROM splatform/stratos-bk-base:leap15_2 as common-build
COPY --from=builder /home/stratos/src/jetstream/jetstream /srv/
COPY --from=builder /home/stratos/src/jetstream/plugins.yaml /srv/
RUN chmod +x /srv/jetstream

# use --target=prod-build to build a backend image for Kubernetes
Expand Down
2 changes: 0 additions & 2 deletions deploy/ci/travis/e2e-mc-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ else
chmod +x mc
cp mc ~/bin

mc -install -y >/dev/null 2>&1

echo "Configuring mc client"
mc config host add s3 ${AWS_ENDPOINT} ${AWS_ACCESS_KEY_ID} ${AWS_SECRET_ACCESS_KEY} --insecure

Expand Down
2 changes: 2 additions & 0 deletions deploy/ci/travis/run-e2e-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ export STRATOS_E2E_BASE_URL="https://127.0.0.1:5443"
E2E_TARGET="e2e -- --no-webdriver-update --dev-server-target= --base-url=https://127.0.0.1:5443 --suite=${SUITE}"

# Set Stratos debug if running a PR with the appropriate label
set +e
source "${DIRPATH}/deploy/ci/travis/check-e2e-pr.sh"
set -e

# Capture video if configured
if [ "$CAPTURE_VIDEO" == "video" ]; then
Expand Down
3 changes: 3 additions & 0 deletions deploy/cloud-foundry/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ cp src/jetstream/jetstream .
# Copy the user invite templates
cp -R src/jetstream/templates ./templates

# Copy plugins.yaml
cp src/jetstream/plugins.yaml .

# Back-end serves static resources from ui folder not dist
mv dist ui

Expand Down
36 changes: 32 additions & 4 deletions deploy/kubernetes/console/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ The following table lists the configurable parameters of the Stratos Helm chart
|imagePullPolicy|Image pull policy|IfNotPresent|
|console.sessionStoreSecret|Secret to use when encrypting session tokens|auto-generated random value|
|console.ssoLogin|Whether to enable SSO Login and use the UAA Login UI instead of the built-in one|false|
|console.ssoOptions|Advanced options to customize the SSO experience||
|console.ssoAllowList|List of permitted redirect URLs for SSO authentication||
|console.backendLogLevel|Log level for backend (info, debug)|info|
|console.service.externalIPs|External IPs to add to the console service|[]|
|console.service.loadBalancerIP|IP address to assign to the load balancer for the metrics service (if supported)||
Expand All @@ -66,9 +68,9 @@ The following table lists the configurable parameters of the Stratos Helm chart
|console.service.servicePort|Service port for the console service|443|
|console.service.externalName|External name for the console service when service type is ExternalName||
|console.service.nodePort|Node port to use for the console service when service type is NodePort or LoadBalancer||
|console.ingress.enabled|Enable ingress for the console service|false|
|console.ingress.host|Host for the ingress resource|||
|console.ingress.secretName|Name of an existing secret containing the TLS certificate for ingress|||
|console.service.ingress.enabled|Enable ingress for the console service|false|
|console.service.ingress.host|Host for the ingress resource|||
|console.service.ingress.secretName|Name of an existing secret containing the TLS certificate for ingress|||
|console.service.http.enabled|Enabled HTTP access to the console service (as well as HTTPS)|false|
|console.service.http.servicePort|Service port for HTTP access to the console service when enabled|80|
|console.service.http.nodePort|Node port for HTTP access to the console service (as well as HTTPS)||
Expand Down Expand Up @@ -190,6 +192,32 @@ helm install my-console stratos/console --namespace=console --set console.servic

## Using an Ingress Controller

### Bare minimum Stratos deployment with an Ingress

1. Deploy `ingress-nginx` Ingress controller into your Kubernetes cluster using the [Helm chart](https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx) or [Kubernetes spec files](https://kubernetes.github.io/ingress-nginx/deploy/).
2. Create `values.yaml` with the following Stratos Helm chart configuration values:
```
console:
service:
ingress:
enabled: true
```
3. Install Stratos:
```
helm repo add stratos https://cloudfoundry.github.io/stratos
kubectl create namespace console
helm install my-console stratos/console --namespace=console --values values.yaml
```
4. Obtain Ingress address by running `kubectl get ingress --namespace=console`, your Stratos installation should be accessible at that address.

Note that configuration above would result in a deployment with self-signed HTTPS certificates and Stratos service being a default backend for the Ingress. The following steps most likely would be required for a production deployment:

1. Acquire a static IP address for the Ingress.
2. Assign a domain name to the static IP via a DNS record and set `console.service.ingress.host` value.
3. Create a Kubernetes secret containing valid HTTPS certificates for the domain and set `console.service.ingress.secretName` value.

### Ingress configuration

If your Kubernetes Cluster supports Ingress, you can expose Stratos through Ingress by supplying the appropriate ingress configuration when installing.

This configuration is described below:
Expand All @@ -202,7 +230,7 @@ This configuration is described below:
|console.service.ingress.host|The host name that will be used for the Stratos service.||
|console.service.ingress.secretName|The existing TLS secret that contains the certificate for ingress.||

You must provide `console.service.ingress.host` when enabling ingress.
If `console.service.ingress.host` isn't provided, Stratos service will be used as the default backend.

By default a certificate will be generated for TLS. You can provide your own certificate by creating a secret and specifying this with `console.service.ingress.secretName`.

Expand Down
13 changes: 11 additions & 2 deletions deploy/kubernetes/console/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,18 @@ Tech Preview is enabled, extra features will be shown.
{{- end}}

To access Stratos:
{{- $ingress := .Values.console.ingress | default dict }}
{{- $ingress := .Values.console.service.ingress | default dict }}
{{- if $ingress.enabled }}
From outside the cluster, the server URL is: http://{{ .Values.console.ingress.host }}
{{- if .Values.console.service.ingress.host }}
From outside the cluster, the server URL is: https://{{ .Values.console.service.ingress.host }}
{{- else }}
NOTE: It may take a few minutes for the Ingress IP to become available.
You can watch the status of by running 'kubectl get ingress --namespace {{ .Release.Namespace }} -w {{ .Release.Name }}-ingress'

Get the URL by running these commands in the same shell:
export INGRESS_ADDR=$(kubectl get ingress --namespace {{ .Release.Namespace }} --field-selector 'metadata.name={{ .Release.Name }}-ingress' -o jsonpath='{.items[0].status.loadBalancer.ingress[0].hostname}')
echo https://$INGRESS_ADDR
{{- end }}
{{- else }}
Get the URL by running these commands in the same shell:
{{- if contains "NodePort" .Values.console.service.type }}
Expand Down
2 changes: 0 additions & 2 deletions deploy/kubernetes/console/templates/__helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,6 @@ Ingress Host:
{{ $host | quote }}
{{- else if .Values.env.DOMAIN -}}
{{ print "console." .Values.env.DOMAIN }}
{{- else -}}
{{ required "Host name is required" $host | quote }}
{{- end -}}
{{- end -}}

Expand Down
6 changes: 5 additions & 1 deletion deploy/kubernetes/console/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -251,8 +251,12 @@ spec:
value: {{default "false" .Values.console.ssoLogin | quote}}
- name: SSO_OPTIONS
value: {{default "" .Values.console.ssoOptions | quote}}
- name: SSO_WHITELIST
- name: SSO_ALLOWLIST
{{- if .Values.console.ssoAllowList }}
value: {{ default "" .Values.console.ssoAllowList | quote }}
{{- else }}
value: {{ default "" .Values.console.ssoWhiteList | quote }}
{{- end }}
{{- if .Values.console.templatesConfigMapName }}
- name: TEMPLATE_DIR
value: /etc/templates
Expand Down
11 changes: 8 additions & 3 deletions deploy/kubernetes/console/templates/ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ metadata:
{{- if hasKey .Values.console.service.ingress.annotations "nginx.ingress.kubernetes.io/proxy-body-size" | not -}}
{{ $_ := set .Values.console.service.ingress.annotations "nginx.ingress.kubernetes.io/proxy-body-size" "200m" }}
{{- end }}
{{ $_ := set .Values.console.service.ingress.annotations "nginx.org/websocket-services" (print .Release.Name "-ui-ext") }}
{{- $_ := set .Values.console.service.ingress.annotations "nginx.org/websocket-services" (print .Release.Name "-ui-ext") }}
{{ toYaml .Values.console.service.ingress.annotations | indent 4 }}
labels:
app.kubernetes.io/name: "stratos"
Expand All @@ -65,12 +65,17 @@ metadata:
{{ $key }}: {{ $value }}
{{- end }}
spec:
{{- $host := (include "ingress.host" .) }}
tls:
- secretName: {{ default (print .Release.Name "-ingress-tls") .Values.console.service.ingress.secretName | quote }}
{{- if $host }}
hosts:
- {{ template "ingress.host" . }}
- {{ $host }}
{{- end }}
rules:
- host: {{ template "ingress.host" . }}
- {{ if $host -}}
host: {{ $host }}
{{ end -}}
http:
paths:
- path: "/"
Expand Down
Loading

0 comments on commit 6e6db9a

Please sign in to comment.