:toc: macro :toc-title:
toc:: = Kiali UI
A UI for the Kiali Istio Observability Project
git clone https://github.com/kiali/kiali-ui.git cd kiali-ui
npm install -g yarn
On some platforms,
yarn start may fail with an error like
Error: ENOSPC: System limit for number of file watchers reached. To fix this, you need to increase the limit of file watchers on your system. The command may vary depending on the platform, please refer to link:https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers[these instructions].
A new browser window should automatically open.
But, if it doesn't then use:
(or whatever address is told by the
yarn start command).
This launches a development environment that instantly reloads any changes to the browser for rapid development.
== Directory Structure
build: Production build output
public: Home of index.html
src: Source and test code
src/actions: Redux actions
src/app: React top level component
src/assets: Images and other assets
src/components: React Components
src/helpers: Utility functions and components
src/img: Patternfly Images
src/pages: Top level pages and nested components
src/reducers: Redux reducers
src/services: Api services
src/store: Redux store definitions
src/styles: Application wide styles
src/types: Typescript definitions for all kinds of types
src/utils: Various Utilities
The Kiali UI is a React application written in Typescript.
yarn as the package manager, if adding dependencies to
make sure you install them with
yarn and commit the
=== Testing with Kiali
When developing, it is usual to run this application outside of https://github.com/kiali/kiali[kiali].
package.jsonwith the url of kiali. [source, json]
For a video on getting a Kiali-ui development environment running please see (complete with tips/tricks):
If Kiali is configured with a specific web root, make sure to append it to the URL. On many setups with Kubernetes, the web root will be
/kiali by default.
yarn startand try it! [source, bash]
$ curl -u admin:admin http://localhost:3000/api Namespaces: [default istio-system kube-public kube-system myproject openshift openshift-infra openshift-node]
Namespace: default Services [docker-registry kubernetes router]
https://www.patternfly.org/[PatternFly] is the main UI components framework. It defines style based on SASS preprocessor.
All Patternfly build assets are copied to
Any React component may have its related SCSS file (such as
App.scss - this one includes all PatternFly Sass along with
PatternFly React Sass extensions).
Once Sass compiles, the resulting CSS can be found next to its SCSS counterpart (ex:
Only static assets which are
import 'ed into your application will be included in your resulting build output.
=== Style Code Guide
See the link:./STYLE_GUIDE.adoc[STYLE CODE GUIDE file].
yarn testis valid, but since some tests are using link:https://facebook.github.io/jest/docs/en/snapshot-testing.html[snapshots] the preferred command is to update them in the same time: [source,shell]
a to run all tests.
After running the tests, if any snapshot has been modified (check git status), the diff should be reviewed to make sure it's an intentional or trivial change. Modified snapshots must be part of the commit so that they're reviewed collectively and won't make CI build fail.
== Testing Libraries for Vulnerabilities
We use https://snyk.io/[Snyk] for JS vulnerability testing. Snyke will run automatically on every commit pushed to
== Production Builds
yarn build which will bundle the build artifacts using webpack into the
Which will then launch a browser with your graphical source map displayed.
== License and Copyright See the link:./LICENSE[LICENSE file].