Skip to content

Commit

Permalink
Upstream 441 (#546)
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 <richard.cox@suse.com>

* 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] <support@dependabot.com>

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] <support@dependabot.com>

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 <neil.macdougall@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>

* 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 <richard.cox@suse.com>

* 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 <richard.cox@suse.com>

* 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 <richard.cox@suse.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>

* 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] <support@dependabot.com>

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 <richard.cox@suse.com>

* 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

* 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] <support@dependabot.com>

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 <nwmac@users.noreply.github.com>

* 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 <richard.cox@suse.com>

* 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] <support@dependabot.com>

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 <nwmac@users.noreply.github.com>

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>

* 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] <support@dependabot.com>

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 <nwmac@users.noreply.github.com>

* Fix expanding pod row

* Fix show of analysis in namespace resource viewer

* Fix fav namespace link

Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>

* Add comment after review

Co-authored-by: Neil MacDougall <neil.macdougall@suse.com>
Co-authored-by: Neil MacDougall <neil_macdougall@hotmail.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>

* 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 <richard.cox@suse.com>

* 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] <support@github.com>

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)

* Fix filter by name in generic kube resource list (cloudfoundry#4845)

* Helm Chart: Ensure mariadb port value can be set (cloudfoundry#4844)

* Helm Chart: Ensure mariadb port value can be set
- fixes cloudfoundry#4843

* Allow for missing mariadb.port
Without this we get the opposite error
```
Error: values don't meet the specifications of the schema(s) in the following chart(s):
console:
- mariadb.port: Invalid type. Expected: integer, given: null
```
have now tested with and without mariadb.port and now in both cases we get the expected `DB_PORT` value in the rendered template

* Update changelog with latest fix (cloudfoundry#4846)

* Remove junk file

* Fix git related issues found in release testing (cloudfoundry#4850)

* Fix helm chart note for ClusterIP

* CF Push: Ensure git credentials are not stored in env var
- use a specific var for clone url instead of obj that becomes env var
- tidy up logic

* Fix issue where path was unescaped, causing proxy fetch of gitlab projects containing %2f to 404

* Update clone failed text, repo does not now have to be public

* Apply nginx uri substituion fix to nginx.dev.conf as well
- think this is only used by docker compose, which isn't supported anymore

* Honour endpoint's ssl config when cloning private git repos (cloudfoundry#4852)

* Fix helm chart note for ClusterIP

* CF Push: Ensure git credentials are not stored in env var
- use a specific var for clone url instead of obj that becomes env var
- tidy up logic

* Fix issue where path was unescaped, causing proxy fetch of gitlab projects containing %2f to 404

* Update clone failed text, repo does not now have to be public

* Apply nginx uri substituion fix to nginx.dev.conf as well
- think this is only used by docker compose, which isn't supported anymore

* Honour endpoint's ssl config when cloning private git repos

* Bump docs version to 4.4.0 (cloudfoundry#4854)

* Update doc and scripts for electron app (cloudfoundry#4855)

* Update doc and scripts

* Fixes for epublish on linux
- license string from https://spdx.org/licenses/Apache-2.0.html

Co-authored-by: Richard Cox <richard.cox@suse.com>

* fix: package.json & package-lock.json to reduce vulnerabilities (cloudfoundry#4859)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-IMMER-1019369

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* Bump electron from 11.0.3 to 11.1.0 in /electron (cloudfoundry#4864)

Bumps [electron](https://github.com/electron/electron) from 11.0.3 to 11.1.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](electron/electron@v11.0.3...v11.1.0)

Signed-off-by: dependabot[bot] <support@github.com>

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

* Fix for issue where you can't deploy via Helm to a cluster with PSP enabled (cloudfoundry#4863)

* Fix issue where Stratos can't be deployed into a k8s cluster with PSP enabled

* Readme fix

* Fix typo in the new value name

* Another typo fix

* Document psp values for annotations and extra labels

* Only set service account name for db if psp is enabled

Co-authored-by: Richard Cox <richard-cox@users.noreply.github.com>
Co-authored-by: Richard Cox <richard.cox@suse.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Ivan Kapelyukhin <ikapelyukhin@suse.com>
Co-authored-by: Geoffrey J. Teale <tealeg@googlemail.com>
Co-authored-by: pg2000 <PG2000@users.noreply.github.com>
Co-authored-by: Benjamin Gandon <benjamin@gstack.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
  • Loading branch information
10 people authored Jan 29, 2021
1 parent defcc46 commit 1e904f1
Show file tree
Hide file tree
Showing 15 changed files with 263 additions and 36 deletions.
4 changes: 4 additions & 0 deletions deploy/kubernetes/console/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ The following table lists the configurable parameters of the Stratos Helm chart
|console.nodeSelector|Node selectors to use for the console Pod||
|mariadb.nodeSelector|Node selectors to use for the database Pod||
|configInit.nodeSelector|Node selectors to use for the configuration Pod||
|console.pspEnabled|Enable Pod Security Policies. Set this to true if you cluster is configured with PSPs enabled|false|
|console.pspName|Name of an existing Pod Security Policy to use instead of the one created by the chart when PSPs are enabled||
|console.pspAnnotations|Annotations to be added to all pod security policy resources||
|console.pspExtraLabels|Additional labels to be added to all pod security policy resources||

## Accessing the Console

Expand Down
3 changes: 3 additions & 0 deletions deploy/kubernetes/console/templates/analyzers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ spec:
imagePullSecrets:
- name: {{.Values.dockerRegistrySecret}}
{{- end }}
{{- if and (eq (printf "%s" .Values.kube.auth) "rbac") (.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1") }}
serviceAccountName: "stratos"
{{- end }}
{{- if not .Values.console.reportsVolumeDisabled }}
volumes:
- name: data
Expand Down
10 changes: 10 additions & 0 deletions deploy/kubernetes/console/templates/config-init.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ metadata:
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
rules:
{{- if .Values.console.pspEnabled }}
- apiGroups:
- extensions
resources:
- podsecuritypolicies
verbs:
- use
resourceNames:
- {{ default (printf "%s-psp" .Release.Name) .Values.console.pspName }}
{{- end }}
- apiGroups:
- ""
resources:
Expand Down
61 changes: 61 additions & 0 deletions deploy/kubernetes/console/templates/database.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,63 @@
{{- if not .Values.mariadb.external }}
---
# Service account "stratos-db" for the database, if needed
{{- if and (eq (printf "%s" .Values.kube.auth) "rbac") (.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1") (.Values.console.pspEnabled) }}
apiVersion: "v1"
kind: "ServiceAccount"
metadata:
name: "stratos-db"
labels:
app.kubernetes.io/component: "stratos-db"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/name: "stratos"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
{{- end }}
---
# Role "stratos-db-role" only used by account "[- stratos-db]"
{{- if and (eq (printf "%s" .Values.kube.auth) "rbac") (.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1") (.Values.console.pspEnabled) }}
apiVersion: "rbac.authorization.k8s.io/v1"
kind: "Role"
metadata:
name: "stratos-db-role"
labels:
app.kubernetes.io/component: "stratos-db-role"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/name: "stratos"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
rules:
- apiGroups:
- extensions
resources:
- podsecuritypolicies
verbs:
- use
resourceNames:
- {{ default (printf "%s-psp" .Release.Name) .Values.console.pspName }}
{{- end }}
---
# Role binding for service account "stratos-db" and role "stratos-db-role"
{{- if and (eq (printf "%s" .Values.kube.auth) "rbac") (.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1") (.Values.console.pspEnabled) }}
apiVersion: "rbac.authorization.k8s.io/v1"
kind: "RoleBinding"
metadata:
name: "stratos-db-role-binding"
labels:
app.kubernetes.io/component: "stratos-db-role-binding"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/name: "stratos"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
subjects:
- kind: "ServiceAccount"
name: "stratos-db"
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: "Role"
name: "stratos-db-role"
{{- end }}
---
{{- if semverCompare ">=1.16" (printf "%s.%s" .Capabilities.KubeVersion.Major (trimSuffix "+" .Capabilities.KubeVersion.Minor) )}}
apiVersion: apps/v1
{{- else }}
Expand Down Expand Up @@ -107,6 +165,9 @@ spec:
imagePullSecrets:
- name: {{.Values.dockerRegistrySecret}}
{{- end }}
{{- if and (eq (printf "%s" .Values.kube.auth) "rbac") (.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1") (.Values.console.pspEnabled) }}
serviceAccountName: "stratos-db"
{{- end }}
volumes:
- name: data
{{- if .Values.mariadb.persistence.enabled }}
Expand Down
45 changes: 45 additions & 0 deletions deploy/kubernetes/console/templates/psp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{{- if and .Values.console.pspEnabled (not .Values.console.pspName) }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: {{ .Release.Name }}-psp
{{- if .Values.console.pspAnnotations }}
annotations:
{{ toYaml .Values.console.pspAnnotations | indent 4 }}
{{- end }}
labels:
app.kubernetes.io/name: "stratos"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
app.kubernetes.io/component: "console-psp"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
{{- if .Values.console.pspExtraLabels }}
{{ toYaml .Values.console.pspExtraLabels | indent 4 }}
{{- end }}
spec:
privileged: false
allowPrivilegeEscalation: false
allowedCapabilities:
- '*'
volumes:
- 'configMap'
- 'downwardAPI'
- 'emptyDir'
- 'persistentVolumeClaim'
- 'secret'
- 'projected'
hostNetwork: false
hostPID: false
hostIPC: false
runAsUser:
rule: 'RunAsAny'
runAsGroup:
rule: 'RunAsAny'
seLinux:
rule: 'RunAsAny'
supplementalGroups:
rule: 'RunAsAny'
fsGroup:
rule: 'RunAsAny'
readOnlyRootFilesystem: false
{{- end }}
10 changes: 10 additions & 0 deletions deploy/kubernetes/console/templates/service-account.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@ metadata:
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
rules:
{{- if .Values.console.pspEnabled }}
- apiGroups:
- extensions
resources:
- podsecuritypolicies
verbs:
- use
resourceNames:
- {{ default (printf "%s-psp" .Release.Name) .Values.console.pspName }}
{{- end }}
- apiGroups:
- ""
resources:
Expand Down
12 changes: 12 additions & 0 deletions deploy/kubernetes/console/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,18 @@ console:
# Extra labels to apply to Pods
podExtraLabels: {}

# Whether PodSecurityPolicy is enabled
pspEnabled: false

# Optional name of a PodSecurityPolicy to use - if not specified, a default will be created
pspName:

# Custom annotations to apply to Pod Security Policies
pspAnnotations: {}

# Extra labels to apply to Pod Security Policies
pspExtraLabels: {}

# Node Selector for console Pod
nodeSelector: {}

Expand Down
72 changes: 58 additions & 14 deletions electron/README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,71 @@
# Stratos Desktop

From the top-level Stratos folder:
Stratos Desktop packages Stratos into a Desktop application using the Electron framework.

- Install dependencies with `npm install`
- Change to the `electron folder` with `cd electron`
- Install dependencies for the electron UI with `npm install`
- Run the Electron app with `./run.sh all`
## Quick Start

> Note this builds both the frontend and backend and run the app
From the top-level folder, run:

- To build only the front end before running, use `./run.sh fe`
- To build only the back end before running, use `./run.sh be`
- To run without building either the the back end or front end, use `./run.sh`
```
cd electron
./package.sh
```

This will:

You can also run the UI with `ng serve` from the top-level folder and then start electron with:
- Install the npm dependencies for Stratos and the Electron App if needed
- Build the Stratos frontend and backend if needed
- Package the Stratos frontend and backend together with the Electron app

On a fresh checkout, this will take some time to run - at the end you'll see some log messages indicating where the packaged outputs have been written.

For Mac OS, you'll get `.app` and `.dmg` files created. The `.app` file can be opened from a terminal with the `open` command.

> Note, the Stratos back-end is written in go and currently we only build for the current architecture that you are running on - it should be possible with some extra scripts to build
the desktop application for Mac, Windows and Linux in one-go.

For more information on other scripts you can run for different build/dev scenarios, so below.

## Overview

This section provides a short overview on what goes on when Stratos runs as a desktop application.

Stratos consists of a go backend and an Angular front-end. The Angular frontend is compiled into a set of static files. The go back-end serves up the static files in addition to providing the backend API for Stratos. The frontend resources reside in the `dist` folder.

For the desktop build, we build the Stratos backend including an extra plugin `desktop` (in `src/jetstream/plugins/desktop`). This adds support for endpoints from local configuration. The frontend is also build including the additional `desktop-extensions` extension (in `src/frontend/packages/desltop-extensions`). This extension also includes a slightly modified theme and some small UI tweaks for the desktop use-case.

The Electron wrapper is in the `electron` folder - the main file being the `index.js` file. Some of the things this does:

- Finds a free port and runs the go backend, listening on that port
- Creates a window and loads the UI from the backend
- Sets up file watchers on the local config files that are read for local endpoint information and sends a notification to the Stratos app when these are changed, so that it can update the endpoints

## Scripts

From the `electron` folder:


To run the Desktop application:

- `./run.sh all` - This will build both the backend and frontend and then run the app
- `./run.sh fe` - This will build frontend and then run the app
- `./run.sh be` - This will build the backend and then run the app

> Note: You can also use `all` and `fe` and `be` with the `build.sh` script - when run without any arg, the build script will only build the frontend and backend if they have not previously been built

## Frontend Development

You can run the frontend in development mode, from the top-level folder with `ng serve` just as you would normally.

You can then run the desktop application using:

`./run.sh dev`

to load the UI from `https://127.0.0.1:4200`
This will start the backend and launch the Electron application - but it will load the UI from `https://127.0.0.1:4200` rather than from the built version that the backend serves.

# Packaging
This allows you to make changes to the frontend code and have the application refresh within the webview, just as it would for regular development.

Packaging as a DMG file for Mac:
## Packaging

`./package.sh all`
Electron Forge is used for packaging.
15 changes: 11 additions & 4 deletions electron/build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#!/usr/bin/env bash

# Colours
CYAN="\033[96m"
YELLOW="\033[93m"
RED="\033[91m"
RESET="\033[0m"
BOLD="\033[1m"

# Script folder
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
STRATOS="`cd "${DIR}/..";pwd`"
Expand Down Expand Up @@ -27,7 +34,7 @@ fi
pushd ${DIR} > /dev/null
# Checks for fresh run on checkout
if [ ! -d "./node_modules" ]; then
echo "Installing node modules ..."
echo -e "${CYAN}${BOLD}Installing node modules for Electron${RESET}"
npm install
fi
popd > /dev/null
Expand All @@ -37,18 +44,18 @@ pushd ${STRATOS} > /dev/null
cat ./package.json | jq -r .version > ${DIR}/version

if [ ! -d "./node_modules" ]; then
echo "Installing node modules in top-level folder ..."
echo -e "${CYAN}${BOLD}Installing node modules for front-end ...${RESET}"
npm install
fi

if [ "$1" != "be" ] && [ ! -d "./dist" ]; then
BUILD_FRONTEND=true
echo "Frontend has not been built - will build"
echo -e "${CYAN}${BOLD}Frontend has not been built - will build${RESET}"
fi

if [ ! -f "./src/jetstream/jetstream" ]; then
BUILD_BACKEND=true
echo "Backend has not been built - will build"
echo -e "${CYAN}${BOLD}Backend has not been built - will build${RESET}"
fi

if [ "$BUILD_FRONTEND" == "true" ]; then
Expand Down
14 changes: 7 additions & 7 deletions electron/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 1e904f1

Please sign in to comment.