Coder Social home page Coder Social logo

microsoft / azpipelines-kubernetesui Goto Github PK

View Code? Open in Web Editor NEW
22.0 21.0 10.0 5.14 MB

This repo contains UI views of a kubernetes cluster and will be used in azure devops pipelines. This UI is hostable outside of azure pipelines product and does not require the UI web server to be running inside the kubernetes cluster.

License: Other

CSS 1.62% TypeScript 89.94% JavaScript 8.02% Batchfile 0.43%

azpipelines-kubernetesui's Introduction

Azure Pipelines Kubernetes UI

Overview

This repo contains React based UI view of a kubernetes cluster and will be used in azure devops pipelines. This UI is hostable outside of azure pipelines product and does not require the UI web server to be running inside the kubernetes cluster.

This repo consists of

  1. Contracts: The IKubeService provides the interface that needs to be implemented inorder to fetch data needed for the UI
  2. WebUI: It contains the components that make up the UI

Usage of Kubernetes UI within Azure DevOps

This Web UI will be integrated into Azure DevOps as an extension and will be available by default in your Azure DevOps accounts going forward. The repo for the extension is at azPipeline-KubernetesUI-devopsExtension.

Host the Kubernetes UI within your Web Application

You can also host the UI outside of Azure DevOps. Refer to the azpipelines-kubernetesUI-WebApp repository as a working reference on how to host the Kubernetes UI in a stand-alone web app. It also has a custom implementation of IKubeService to fetch the required Kubernets objects.

Cluster workloads page UI

Cluster services page UI

Prerequisites: Node and Npm

Windows and Mac OSX: Download and install node from nodejs.org

Linux: Install using package manager

From a terminal ensure at least node 8.4 and npm 5.3:

$ node -v && npm -v
v8.4.0
5.3.0

To install npm separately:

[sudo] npm install npm@5 -g
npm -v
5.6.0

Note: On windows if it's still returning npm 2.x run where npm. Notice hits in program files. Rename those two npm files and the 5.6.0 in AppData will win.

Build

npm install
npm run build

Test

To clean test binaries, build test binaries and run tests

npm run ctest

To build test binaries and run tests

npm test

Dependencies

This repository depends on the following packages:

Some external dependencies:

  • React - Is used to render the UI in the samples, and is a dependency of azure-devops-ui.
  • TypeScript - Samples are written in TypeScript and complied to JavaScript
  • SASS - Extension samples are styled using SASS (which is compiled to CSS and delivered in webpack js bundles).
  • webpack - Is used to gather dependencies into a single javascript bundle for each sample.
  • jest - Is used as unit test framework.
  • enzyme - Test utility to test react components.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azpipelines-kubernetesui's People

Contributors

dabasn avatar dabasnidhi avatar madhuv-msft avatar microsoftopensource avatar msftgits avatar nidabas avatar rakol-ms avatar savenkat avatar sorosoro2 avatar thesattiraju avatar vithati avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azpipelines-kubernetesui's Issues

css conflicts with AzureDevops

Possible solutions:

  • Use css optimizer to split into two chunks of own-css & dependent-css and not load the dependent css at runtime of AzureDevOps. But you will still be using a non-deterministic version of css provided by AzureDevOps. Also need to resolve loading multiple files in AzureDevops webproj dependency resolution
  • Try prefixing or scoping the css to not conflict with AzureDevOps

depth of the pod list should show shadow by default

Today pod list is not shown shadow by default, in webapp we have to implement the following. This issue will not happen in devops, because devops extension is loaded in devops and this variable is loaded as part of devops. to make use of this UI in general manner we have to define the variable, so we will not override in other places.

microsoft/azpipelines-kubernetesUI-WebApp@75d69a3

this happens due to use of CSS available in https://www.npmjs.com/package/azure-devops-ui [which are not complete]. we can open a bug in Devops also.

accessibility issues in dark mode

For a user in devops we can setup darkmode [not Windows default high contrast mode], in that UI is looked the following way

image

Keyboard also we should define, one of the issue reported:
Keyboard : When using Tab to navigate it is not moving to the highlighted panel
image

N calls in a single method

I observed that we are making N calls in _populateStateData() method of KubeSummary.tsx file and that is an anti-pattern for performance. Please fix it.

No option to switch back from Desktop or Mobile view

When I create a Retrospective board, I have the option to switch to Desktop or Mobile view. As soon as the initial view is changed, there is no option (the icon disappears) to switch back to the initial view. Furthermore, when my colleagues open the Retrospective, the board is displayed in Mobile view for them as default. And there is no way for them to switch to another view.

Why use azure-devops-ui instead of Fabric 7?

It seems both the design language and React components are duplicating effort taken by the Fabric 7 team. I'd agree that Fabric was originally design for 365 apps, but it seems that they are increasing the scope to become the general Microsoft UI Framework?

URL for the job should not be computed

As per the code, uri should not be computed. it should be taken from labels.
https://github.com/Microsoft/azure-pipelines-tasks/blob/3d08e79a83e16610b0f4e9531e74dbe5391255b1/Tasks/Common/docker-common/pipelineutils.ts#L28

addLabel(hostName, "build.builduri", "BUILD_BUILDURI", labels);

we are doing the following
https://github.com/Microsoft/azpipelines-kubernetesUI/blob/2af2af8a5a0e95d7afd88ce18d18ac69b160d207/src/WebUI/ImageDetails/ImageDetails.tsx#L367

return format("{0}{1}/_build?buildId={2}", teamFoundationCollectionUri, teamProject, runId.toString());

Add a screenshot in Readme

Please add a screenshot in the Readme, I want to know what I get instantaneously when looking at the docs.

Also, how do you set this up to give it a try?
Thanks!

add webapp example in this repo

today we use webapp repo for testing any changes done in this repo, to make sure testing is also done on the same repo, we should have an example app in this repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.