Added gh-pages branch

This commit is contained in:
Sue Jacobs
2020-08-11 16:18:21 -05:00
parent 9ba430c228
commit 1a90b7bed9
246 changed files with 8063 additions and 29230 deletions
-2
View File
@@ -1,2 +0,0 @@
.DS_Store
**/node_modules
-76
View File
@@ -1,76 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [opensource@indeed.com](mailto:opensource@indeed.com). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
-30
View File
@@ -1,30 +0,0 @@
# Stage 1 - the build react app
FROM node:12.4.0-alpine as build-deps
WORKDIR /usr/src/app
COPY client/package.json client/package-lock.json ./
RUN npm i
COPY client/ ./
RUN npm run build
# Stage 2 - the production environment
FROM node:12.4.0-alpine
RUN apk add --no-cache tini
ENV NODE_ENV production
WORKDIR /usr/src/app
RUN chown -R node:node /usr/src/app/
EXPOSE 4654
COPY server/package.json server/package-lock.json ./
RUN npm i --production
COPY --from=build-deps /usr/src/app/build /usr/src/app/public
COPY /server ./
# USER 1000 is the "node" user
# This is to avoid the "container has runAsNonRoot and image has non-numeric user (node), cannot verify user is non-root"
# in clusters with PSP enabled
USER 1000
ENTRYPOINT ["/sbin/tini", "--", "node", "."]
+3
View File
@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gem 'github-pages'
+258
View File
@@ -0,0 +1,258 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (6.0.3.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
commonmarker (0.17.13)
ruby-enum (~> 0.5)
concurrent-ruby (1.1.7)
dnsruby (1.61.4)
simpleidn (~> 0.1)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.12.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
execjs (2.7.0)
faraday (1.0.1)
multipart-post (>= 1.2, < 3)
ffi (1.13.1)
forwardable-extended (2.6.0)
gemoji (3.0.1)
github-pages (207)
github-pages-health-check (= 1.16.1)
jekyll (= 3.9.0)
jekyll-avatar (= 0.7.0)
jekyll-coffeescript (= 1.1.1)
jekyll-commonmark-ghpages (= 0.1.6)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.13.0)
jekyll-gist (= 1.5.0)
jekyll-github-metadata (= 2.13.0)
jekyll-mentions (= 1.5.1)
jekyll-optional-front-matter (= 0.3.2)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.3.0)
jekyll-redirect-from (= 0.15.0)
jekyll-relative-links (= 0.6.1)
jekyll-remote-theme (= 0.4.1)
jekyll-sass-converter (= 1.5.2)
jekyll-seo-tag (= 2.6.1)
jekyll-sitemap (= 1.4.0)
jekyll-swiss (= 1.0.0)
jekyll-theme-architect (= 0.1.1)
jekyll-theme-cayman (= 0.1.1)
jekyll-theme-dinky (= 0.1.1)
jekyll-theme-hacker (= 0.1.1)
jekyll-theme-leap-day (= 0.1.1)
jekyll-theme-merlot (= 0.1.1)
jekyll-theme-midnight (= 0.1.1)
jekyll-theme-minimal (= 0.1.1)
jekyll-theme-modernist (= 0.1.1)
jekyll-theme-primer (= 0.5.4)
jekyll-theme-slate (= 0.1.1)
jekyll-theme-tactile (= 0.1.1)
jekyll-theme-time-machine (= 0.1.1)
jekyll-titles-from-headings (= 0.5.3)
jemoji (= 0.11.1)
kramdown (= 2.3.0)
kramdown-parser-gfm (= 1.1.0)
liquid (= 4.0.3)
mercenary (~> 0.3)
minima (= 2.5.1)
nokogiri (>= 1.10.4, < 2.0)
rouge (= 3.19.0)
terminal-table (~> 1.4)
github-pages-health-check (1.16.1)
addressable (~> 2.3)
dnsruby (~> 1.60)
octokit (~> 4.0)
public_suffix (~> 3.0)
typhoeus (~> 1.3)
html-pipeline (2.14.0)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.9.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (>= 1.17, < 3)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
jekyll-coffeescript (1.1.1)
coffee-script (~> 2.2)
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.3.1)
commonmarker (~> 0.14)
jekyll (>= 3.7, < 5.0)
jekyll-commonmark-ghpages (0.1.6)
commonmarker (~> 0.17.6)
jekyll-commonmark (~> 1.2)
rouge (>= 2.0, < 4.0)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-github-metadata (2.13.0)
jekyll (>= 3.4, < 5.0)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.5.1)
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.2)
jekyll (>= 3.0, < 5.0)
jekyll-paginate (1.1.0)
jekyll-readme-index (0.3.0)
jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.15.0)
jekyll (>= 3.3, < 5.0)
jekyll-relative-links (0.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-remote-theme (0.4.1)
addressable (~> 2.0)
jekyll (>= 3.5, < 5.0)
rubyzip (>= 1.3.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-swiss (1.0.0)
jekyll-theme-architect (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-cayman (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-dinky (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-merlot (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-midnight (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-minimal (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-modernist (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-primer (0.5.4)
jekyll (> 3.5, < 5.0)
jekyll-github-metadata (~> 2.9)
jekyll-seo-tag (~> 2.0)
jekyll-theme-slate (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-tactile (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-time-machine (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-titles-from-headings (0.5.3)
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
jemoji (0.11.1)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
kramdown (2.3.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.4.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.14.1)
multipart-post (2.1.1)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
octokit (4.18.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.1.1)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.19.0)
ruby-enum (0.8.0)
i18n
rubyzip (2.3.0)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
simpleidn (0.1.1)
unf (~> 0.1.4)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.7)
thread_safe (~> 0.1)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
zeitwerk (2.4.0)
PLATFORMS
ruby
DEPENDENCIES
github-pages
BUNDLED WITH
1.17.3
-201
View File
@@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-1
View File
@@ -1 +0,0 @@
osslifecycle=active
-144
View File
@@ -1,144 +0,0 @@
# K8Dash - Kubernetes Dashboard
K8Dash is the easiest way to manage your Kubernetes cluster. Why?
* Full cluster management: Namespaces, Nodes, Pods, Replica Sets, Deployments, Storage, RBAC and more
* Blazing fast and Always Live: no need to refresh pages to see the latest
* Quickly visualize cluster health at a glance: Real time charts help quickly track down poorly performing resources
* Easy CRUD and scaling: plus inline API docs to easily understand what each field does
* Simple OpenID integration: no special proxies required
* Simple installation: use the provided yaml resources to have K8Dash up and running in under 1 minute (no, seriously)
## Click the video below to see K8Dash in action
[![K8Dash - Kubernetes Dashboard](https://raw.githubusercontent.com/herbrandson/k8dash/master/docs/videoThumbnail.png)](http://www.youtube.com/watch?v=u-1jGAhAHAM "K8Dash - Kubernetes Dashboard")
## Prerequisites
+ A running Kubernetes cluster
+ [metrics server](https://github.com/kubernetes-incubator/metrics-server) installed (optional, but strongly recommended)
+ A Kubernetes cluster configured for [OpenId Connect](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) authentication (optional)
## Getting Started
Deploy k8dash with something like the following...
NOTE: never trust a file downloaded from the internet. Make sure to review the contents of [kubernetes-k8dash.yaml](https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash.yaml) before running the script below.
``` bash
kubectl apply -f https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash.yaml
```
To access k8dash, you must make it publicly visible. If you have an ingress server setup, you can accomplish by adding a route like the following
``` yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: k8dash
namespace: kube-system
spec:
rules:
-
host: k8dash.example.com
http:
paths:
-
path: /
backend:
serviceName: k8dash
servicePort: 80
```
# kubectl proxy
Unfortunately, `kubectl proxy` can not be used to access k8dash. According to the information at [https://github.com/kubernetes/kubernetes/issues/38775#issuecomment-277915961](https://github.com/kubernetes/kubernetes/issues/38775#issuecomment-277915961), it seems that `kubectl proxy` strips the Authorization header when it proxies requests. From that link:
> this is working as expected. "proxying" through the apiserver will not get you standard proxy behavior (preserving Authorization headers end-to-end), because the API is not being used as a standard proxy
# Logging in
There are multiple options logging into the dashboard.
## Service Account Token
The first (and easiest) option is to create a dedicated service account. The can be accomplished using the following script.
``` bash
# Create the service account in the current namespace (we assume default)
kubectl create serviceaccount k8dash-sa
# Give that service account root on the cluster
kubectl create clusterrolebinding k8dash-sa --clusterrole=cluster-admin --serviceaccount=default:k8dash-sa
# Find the secret that was created to hold the token for the SA
kubectl get secrets
# Show the contents of the secret to extract the token
kubectl describe secret k8dash-sa-token-xxxxx
```
Retrieve the `token` value from the secret and enter it into the login screen to access the dashboard.
## Running k8dash with OpenId Connect (oidc)
K8dash makes using OpenId Connect for authentication easy. Assuming your cluster is configured to use OIDC, all you need to do is create a secret containing your credentials and run the [kubernetes-k8dash-oidc.yaml](https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash-oidc.yaml) config.
To learn more about configuring a cluster for OIDC, check out these great links
+ [https://kubernetes.io/docs/reference/access-authn-authz/authentication/](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens)
+ [https://medium.com/@mrbobbytables/kubernetes-day-2-operations-authn-authz-with-oidc-and-a-little-help-from-keycloak-de4ea1bdbbe](https://medium.com/@mrbobbytables/kubernetes-day-2-operations-authn-authz-with-oidc-and-a-little-help-from-keycloak-de4ea1bdbbe)
+ [https://medium.com/@int128/kubectl-with-openid-connect-43120b451672](https://medium.com/@int128/kubectl-with-openid-connect-43120b451672)
+ [https://www.google.com/search?q=kubernetes+configure+oidc&oq=kubernetes+configure+oidc&aqs=chrome..69i57j0.4772j0j7&sourceid=chrome&ie=UTF-8](https://www.google.com/search?q=kubernetes+configure+oidc&oq=kubernetes+configure+oidc&aqs=chrome..69i57j0.4772j0j7&sourceid=chrome&ie=UTF-8)
You can deploy k8dash with oidc support using something like the following script...
NOTE: never trust a file downloaded from the internet. Make sure to review the contents of [kubernetes-k8dash-oidc.yaml](https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash-oidc.yaml) before running the script below.
``` bash
OIDC_URL=<put your endpoint url here... something like https://accounts.google.com>
OIDC_ID=<put your id here... something like blah-blah-blah.apps.googleusercontent.com>
OIDC_SECRET=<put your oidc secret here>
kubectl create secret -n kube-system generic k8dash \
--from-literal=url="$OIDC_URL" \
--from-literal=id="$OIDC_ID" \
--from-literal=secret="$OIDC_SECRET"
kubectl apply -f https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash-oidc.yaml
```
Additionally, there are a few other OIDC options you can provide via environment variables. First is `OIDC_SCOPES`. The default value for this value is `openid email`, but additional scopes can also be added using something like `OIDC_SCOPES="openid email groups"`.
The other option is `OIDC_METADATA`. K8Dash uses the excellent [node-openid-client](https://github.com/panva/node-openid-client) module. `OIDC_METADATA` will take a json string and pass it to the `Client` constructor. Docs [here](https://github.com/panva/node-openid-client/blob/master/docs/README.md#client). For example, `OIDC_METADATA='{"token_endpoint_auth_method":"client_secret_post"}`
## Running k8dash with NodePort
If you do not have an ingress server setup, you can utilize a NodePort service as configured in the [kubernetes-k8dash-nodeport.yaml](https://raw.githubusercontent.com/herbrandson/k8dash/master/kubernetes-k8dash-nodeport.yaml). This is ideal when creating a single node master, or if you want to get up and running as fast as possible.
This will map the k8dash port 4654 to a randomly selected port on the running node. The assigned port can be found using
```
$ kubectl get svc --namespace=kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
k8dash NodePort 10.107.107.62 <none> 4654:32565/TCP 1m
```
## Metrics
K8dash relies heavily on [metrics-server](https://github.com/kubernetes-incubator/metrics-server) to display real time cluster metrics. It is strongly recommended to have metrics-server installed to get the best experiance from k8dash.
+ [Installing metrics-server](https://github.com/kubernetes-incubator/metrics-server)
+ [Running metrics-server with kubeadm](https://medium.com/@waleedkhan91/how-to-configure-metrics-server-on-kubeadm-provisioned-kubernetes-cluster-f755a2ac43a2)
# Development
K8dash is made up of 2 parts. The server and the client.
### Server
To run the server, run `npm i` from the `/server` directory to install dependencies and then `npm start` to run the server.
The server is a simple express.js server that is primarily responsible for proxying requests to the Kubernetes api server.
During development, the server will use whatever is configured in `~/.kube/config` to connect the desired cluster.
### Client
For the client, move to the `/client` directory, run `npm i` and then `npm start`. The client is a React application with minimal other dependencies.
## License
[Apache License 2.0](https://raw.githubusercontent.com/herbrandson/k8dash/master/LICENSE)
+11
View File
@@ -0,0 +1,11 @@
desc 'Delete generated _site files'
task :clean do
system "rm -fR _site"
end
desc 'Run the jekyll dev server'
task :serve do
system "jekyll serve --watch --baseurl="
end
task :default => :serve
+16
View File
@@ -0,0 +1,16 @@
name: Proctor - A/B Testing Framework by Indeed
# https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
highlighter: rouge
markdown: kramdown
kramdown:
input: GFM #Enable GitHub Flavored Markdown (fenced code blocks)
auto_ids: true
hard_wrap: false
syntax_highlighter: rouge
exclude: ['Gemfile', 'Gemfile.lock', 'Rakefile.rb', 'README.md']
# jekyll serve --watch --baseurl=
# baseurl: "https://indeedeng.github.io/proctor"
# baseurl: "https://tate-indeed.github.io/proctor-tate-working"
+8
View File
@@ -0,0 +1,8 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
+20
View File
@@ -0,0 +1,20 @@
{% assign items = include.items | split: ' ' %}
<ul style="list-style-type: none; padding: 0; margin-left: 0">
{% for item in items %}
{% assign item_url = item | prepend:'/docs/' | append: '/' %}
{% if item_url == page.url %}
{% assign c = 'current' %}
{% else %}
{% assign c = '' %}
{% endif %}
{% for p in site.pages %}
{% if p.url == item_url %}
<li class="{{ c }}"><a href="{{ site.baseurl }}{{ p.url }}">{{ p.title }}</a></li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
+13
View File
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
<link rel="shortcut icon" type="image/x-icon" href="{{ "/images/favicon.ico" | prepend: site.baseurl }}" >
+7
View File
@@ -0,0 +1,7 @@
```
<dependency>
<groupId>com.indeed</groupId>
<artifactId>{{ include.artifact }}</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
```
+9
View File
@@ -0,0 +1,9 @@
{% assign buckets = include.buckets | split: ' ' %}
{% assign ranges = include.ranges | split: ' ' %}
{% assign values = include.values | split: ' ' %}
<div class="ui-allocation-bar">
{% for bucket in buckets %}
<span class="ui-allocation-range ui-color{{ values[forloop.index0] }}" style="width: {{ ranges[forloop.index0] }}%;"><span class="ui-allocation-range-lbl">{{ bucket }}<br/>{{ ranges[forloop.index0] }}%</span></span>
{% endfor %}
</div>
+20
View File
@@ -0,0 +1,20 @@
{% assign buckets = include.buckets | split: ' ' %}
{% assign ranges = include.ranges | split: ' ' %}
{% assign values = include.values | split: ' ' %}
<div class="ui-allocation-table">{% comment %}Without this extra div, jekyll {% endcomment %}
<table>
<tr>
{% for bucket in buckets %}
<th style="width: {{ ranges[forloop.index0] }}%;">{{ bucket }}</th>
{% endfor %}
</tr>
<tr>
{% for bucket in buckets %}
<td class="ui-color{{ values[forloop.index0] }}">
{{ ranges[forloop.index0] }}%
</td>
{% endfor %}
</tr>
</table>
</div>
+19
View File
@@ -0,0 +1,19 @@
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="{{ site.baseurl }}/">Introduction</a>
{% include docs_ul.html items='overview quick-start' %}
<h3 data-toc-skip>Application Usage</h3>
{% include docs_ul.html items='key-features' %}
<h3 data-toc-skip>Contributing</h3>
{% include docs_ul.html items='contributing' %}
<br style="clear: left;" />
</div>
</div>
</nav>
+104
View File
@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
{% include header.html %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{ page.title }}</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/normalize.css">
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/gridism.css">
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css">
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/styles.css">
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/indeed-styles.css">
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
{% include sidenav_items.html %}
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>{{ page.title }}</h1>
{{ content }}
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
{% include footer.html %}
</footer>
</div>
<!--{% if page.exclude_toc == nil or page.exclude_toc == false %}
<script src="{{ site.baseurl }}/assets/js/toc.js"></script>
{% endif %}-->
{% include analytics.html %}
</body>
</html>
+11
View File
@@ -0,0 +1,11 @@
desc 'Delete generated _site files'
task :clean do
system "rm -fR _site"
end
desc 'Run the jekyll dev server'
task :serve do
system "jekyll serve --watch --baseurl="
end
task :default => :serve
+113
View File
@@ -0,0 +1,113 @@
/*
* Gridism
* A simple, responsive, and handy CSS grid by @cobyism
* https://github.com/cobyism/gridism
*/
/* Preserve some sanity */
.grid,
.unit {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Set up some rules to govern the grid */
.grid {
display: block;
clear: both;
}
.grid .unit {
float: left;
width: 100%;
padding: 10px;
}
/* This ensures the outer gutters are equal to the (doubled) inner gutters. */
.grid .unit:first-child { padding-left: 20px; }
.grid .unit:last-child { padding-right: 20px; }
/* Nested grids already have padding though, so lets nuke it */
.unit .unit:first-child { padding-left: 0; }
.unit .unit:last-child { padding-right: 0; }
.unit .grid:first-child > .unit { padding-top: 0; }
.unit .grid:last-child > .unit { padding-bottom: 0; }
/* Let people nuke the gutters/padding completely in a couple of ways */
.no-gutters .unit,
.unit.no-gutters {
padding: 0 !important;
}
/* Wrapping at a maximum width is optional */
.wrap .grid,
.grid.wrap {
max-width: 978px;
margin: 0 auto;
}
/* Width classes also have shorthand versions numbered as fractions
* For example: for a grid unit 1/3 (one third) of the parent width,
* simply apply class="w-1-3" to the element. */
.grid .whole, .grid .w-1-1 { width: 100%; }
.grid .half, .grid .w-1-2 { width: 50%; }
.grid .one-third, .grid .w-1-3 { width: 33.3332%; }
.grid .two-thirds, .grid .w-2-3 { width: 66.6665%; }
.grid .one-quarter, .grid .w-1-4 { width: 25%; }
.grid .three-quarters, .grid .w-3-4 { width: 75%; }
.grid .one-fifth, .grid .w-1-5 { width: 20%; }
.grid .two-fifths, .grid .w-2-5 { width: 40%; }
.grid .three-fifths, .grid .w-3-5 { width: 60%; }
.grid .four-fifths, .grid .w-4-5 { width: 80%; }
.grid .golden-small, .grid .w-g-s { width: 38.2716%; } /* Golden section: smaller piece */
.grid .golden-large, .grid .w-g-l { width: 61.7283%; } /* Golden section: larger piece */
/* Clearfix after every .grid */
.grid {
*zoom: 1;
}
.grid:before, .grid:after {
display: table;
content: "";
line-height: 0;
}
.grid:after {
clear: both;
}
/* Utility classes */
.align-center { text-align: center; }
.align-left { text-align: left; }
.align-right { text-align: right; }
.pull-left { float: left; }
.pull-right { float: right; }
/* Responsive Stuff */
@media screen and (max-width: 568px) {
/* Stack anything that isnt full-width on smaller screens */
.grid .unit {
width: 100% !important;
padding-left: 20px;
padding-right: 20px;
}
.unit .grid .unit {
padding-left: 0px;
padding-right: 0px;
}
/* Sometimes, you just want to be different on small screens */
.center-on-mobiles {
text-align: center !important;
}
.hide-on-mobiles {
display: none !important;
}
}
/* Expand the wrap a bit further on larger screens */
@media screen and (min-width: 1180px) {
.wider .grid {
max-width: 1180px;
margin: 0 auto;
}
}
File diff suppressed because it is too large Load Diff
+408
View File
@@ -0,0 +1,408 @@
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct `inline-block` display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9.
* Hide the `template` element in IE, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Address `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Correct font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
color: #000000;
background-color: #FFFFFF;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre-wrap;
}
/**
* Set consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 2 */
margin: 0; /* 3 */
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
+122
View File
@@ -0,0 +1,122 @@
/* Theme by Steve Smith (orderedlist) : https://github.com/orderedlist/minimal */
@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
body {
padding:0;
font-family: 'Avenir', Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
font-weight:300;
}
header {
padding-top: 20px;
}
h3 {
header, section, article, footer {
padding-left: 0;
margin-left: 0;
}
h1, h2, h3, h4, h5, h6 {
color:#222;
margin:0 0 20px;
}
p, ul, ol, table, pre, dl {
margin:0 0 20px;
}
h1, h2, h3 {
line-height:1.1;
}
h2 {
color:#393939;
}
h3, h4, h5, h6 {
color:#494949;
}
a {
color:#00c;
text-decoration:none;
}
a:hover {
color:#069;
}
a small {
font-size:11px;
color:#777;
margin-top:-0.6em;
display:block;
}
a:hover small {
color:#777;
}
blockquote {
border-left:1px solid #e5e5e5;
margin:0;
padding:0 0 0 20px;
font-style:italic;
}
code, pre {
font-family:Monospace, Bitstream Vera Sans Mono, Lucida Console, Terminal;
color:#333;
font-size:14px;
}
pre {
padding:8px 15px;
background: #f8f8f8;
border-radius:5px;
border:1px solid #e5e5e5;
overflow-x: auto;
}
table {
width:100%;
border-collapse:collapse;
}
th, td {
text-align:left;
padding:5px 10px;
border-bottom:1px solid #e5e5e5;
}
dt {
color:#444;
font-weight:700;
}
th {
color:#444;
}
img {
max-width:100%;
}
strong {
color:#222;
font-weight:700;
}
small {
font-size:11px;
}
hr {
border:0;
background:#e5e5e5;
height:1px;
margin:0 0 20px;
}
+71
View File
@@ -0,0 +1,71 @@
article {
padding: 0 20px 20px;
margin: 0 10px;
}
aside {
padding: 0 0 20px;
}
aside h1, aside h2, aside h3, aside h4, aside h5, aside h6 {
margin-bottom: 5px;
}
table code {
white-space: nowrap;
color: #000000;
background-color: #E8E8EE;
}
td {
vertical-align: top;
}
span.smallcode code {
font-family: 'Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal';
font-size: 12px;
white-space: normal;
}
span.xscode code {
font-family: 'Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal';
font-size: 10px;
white-space: normal;
}
span.smallcode,span.xscode a code {
color: #39c;
}
.ui-allocation-bar{
display:block;
border:1px solid #BBB;
overflow:hidden;
padding:5px;
background-color:#FFF;
}
.ui-allocation-range{
display:inline-block;
float:left;
text-align:center;
white-space:nowrap;
padding:5px 0;
overflow:hidden;
}
.ui-allocation-range-lbl{
text-align:center;
}
.ui-color-1{background-color:#FFED6F;}
.ui-color0{background-color:#8DD3C7;}
.ui-color1{background-color:#FFFFB3;}
.ui-color2{background-color:#BEBADA;}
.ui-color3{background-color:#FB8072;}
.ui-color4{background-color:#80B1D3;}
.ui-color5{background-color:#FDB462;}
.ui-color6{background-color:#B3DE69;}
.ui-color7{background-color:#FCCDE5;}
.ui-color8{background-color:#D9D9D9;}
.ui-color9{background-color:#BC80BD;}
.ui-color10{background-color:#CCEBC5;}
+69
View File
@@ -0,0 +1,69 @@
.highlight { background: #f5f5f5; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kn { font-weight: bold } /* Keyword.Namespace */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }
+33
View File
@@ -0,0 +1,33 @@
// renders table-of-contents for the given page
// alternative to https://github.com/dafi/jekyll-toc-generator or https://github.com/dafi/tocmd-generator
if(typeof document.querySelectorAll === 'function') {
var toc = document.querySelectorAll('[id^=toc]'),
len = toc.length,
df = document.createDocumentFragment(),
sidebar = document.querySelector('aside'),
main_header = document.querySelector('article > h1'),
h4, ul, li, anchor, i;
if(len > 0) {
ul = document.createElement('ul');
for(i = 0; i < len; i++) {
// restrict to h1,h2,h3
if(toc[i].nodeName == 'H1' || toc[i].nodeName == 'H2' || toc[i].nodeName == 'H3') {
li = document.createElement('li');
anchor = document.createElement('a');
anchor.href = '#' + toc[i].id;
anchor.innerText = toc[i].innerText;
anchor.title = 'Jump to ' + toc[i].innerText;
li.appendChild(anchor);
ul.appendChild(li);
}
}
h4 = document.createElement('h4');
h4.innerText = "On this page";
df.appendChild(h4);
df.appendChild(ul);
sidebar.insertBefore(df, sidebar.firstChild);
}
}
+85
View File
@@ -0,0 +1,85 @@
{
"tests" : {
"bgcolortst" : {
"version" : 1,
"description" : "background color test",
"constants" : {
},
"rule" : null,
"salt" : "bgcolortst",
"buckets" : [ {
"name" : "inactive",
"value" : -1,
"description" : "",
"payload" : {
"stringValue" : ""
}
}, {
"name" : "altColor1",
"value" : 0,
"description" : "indeed orange for android",
"payload" : {
"stringValue" : "#ff6600"
}
}, {
"name" : "altColor2",
"value" : 1,
"description" : "magenta for android >= 5",
"payload" : {
"stringValue" : "#CD29C0"
}
}, {
"name" : "altColor3",
"value" : 2,
"description" : "indeed blue for iOS",
"payload" : {
"stringValue" : "#2164f3"
}
}, {
"name" : "altColor4",
"value" : 3,
"description" : "green for iOS >= 8",
"payload" : {
"stringValue" : "#008040"
}
}],
"allocations" : [ {
"rule" : "${userAgent.android && userAgent.OS.majorVersion >= 5}",
"ranges" : [ {
"length" : 1.0,
"bucketValue" : 1
} ]
}, {
"rule" : "${userAgent.android}",
"ranges" : [ {
"length" : 1.0,
"bucketValue" : 0
} ]
}, {
"rule" : "${userAgent.IOS && userAgent.OS.majorVersion >= 8}",
"ranges" : [ {
"length" : 1.0,
"bucketValue" : 3
} ]
}, {
"rule" : "${userAgent.IOS}",
"ranges" : [ {
"length" : 1.0,
"bucketValue" : 2
} ]
}, {
"rule" : null,
"ranges" : [ {
"length" : 1.0,
"bucketValue" : -1
} ]
} ],
"testType" : "USER"
}
},
"audit" : {
"version" : 1,
"updatedBy" : "jack",
"updated" : 1379048400000
}
}
+233
View File
@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico" >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Contributing</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="/assets/css/normalize.css">
<link rel="stylesheet" href="/assets/css/gridism.css">
<link rel="stylesheet" href="/assets/css/syntax.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/indeed-styles.css">
<link rel="stylesheet" href="/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="/">Introduction</a>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/overview/">Deploying</a></li>
<li class=""><a href="/docs/quick-start/">Quick Start</a></li>
</ul>
<h3 data-toc-skip>Application Usage</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/key-features/">Loading Test Matrix</a></li>
</ul>
<h3 data-toc-skip>Contributing</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class="current"><a href="/docs/contributing/">Contributing</a></li>
</ul>
<br style="clear: left;" />
</div>
</div>
</nav>
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>Contributing</h1>
<h3>Coming Soon!</h3>
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
</footer>
</div>
<!--
<script src="/assets/js/toc.js"></script>
-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
+233
View File
@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico" >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Loading Test Matrix</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="/assets/css/normalize.css">
<link rel="stylesheet" href="/assets/css/gridism.css">
<link rel="stylesheet" href="/assets/css/syntax.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/indeed-styles.css">
<link rel="stylesheet" href="/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="/">Introduction</a>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/overview/">Deploying</a></li>
<li class=""><a href="/docs/quick-start/">Quick Start</a></li>
</ul>
<h3 data-toc-skip>Application Usage</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class="current"><a href="/docs/key-features/">Loading Test Matrix</a></li>
</ul>
<h3 data-toc-skip>Contributing</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/contributing/">Contributing</a></li>
</ul>
<br style="clear: left;" />
</div>
</div>
</nav>
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>Loading Test Matrix</h1>
<h3>Coming Soon!</h3>
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
</footer>
</div>
<!--
<script src="/assets/js/toc.js"></script>
-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
+233
View File
@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico" >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Deploying</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="/assets/css/normalize.css">
<link rel="stylesheet" href="/assets/css/gridism.css">
<link rel="stylesheet" href="/assets/css/syntax.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/indeed-styles.css">
<link rel="stylesheet" href="/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="/">Introduction</a>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class="current"><a href="/docs/overview/">Deploying</a></li>
<li class=""><a href="/docs/quick-start/">Quick Start</a></li>
</ul>
<h3 data-toc-skip>Application Usage</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/key-features/">Loading Test Matrix</a></li>
</ul>
<h3 data-toc-skip>Contributing</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/contributing/">Contributing</a></li>
</ul>
<br style="clear: left;" />
</div>
</div>
</nav>
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>Deploying</h1>
<h3>Coming Soon!</h3>
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
</footer>
</div>
<!--
<script src="/assets/js/toc.js"></script>
-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
+233
View File
@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico" >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Quick Start</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="/assets/css/normalize.css">
<link rel="stylesheet" href="/assets/css/gridism.css">
<link rel="stylesheet" href="/assets/css/syntax.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/indeed-styles.css">
<link rel="stylesheet" href="/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="/">Introduction</a>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/overview/">Deploying</a></li>
<li class="current"><a href="/docs/quick-start/">Quick Start</a></li>
</ul>
<h3 data-toc-skip>Application Usage</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/key-features/">Loading Test Matrix</a></li>
</ul>
<h3 data-toc-skip>Contributing</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/contributing/">Contributing</a></li>
</ul>
<br style="clear: left;" />
</div>
</div>
</nav>
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>Quick Start</h1>
<h3>Coming Soon!</h3>
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
</footer>
</div>
<!--
<script src="/assets/js/toc.js"></script>
-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

+233
View File
@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico" >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>K8dash</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v0.4.1/dist/bootstrap-toc.min.js"></script>
<link rel="stylesheet" href="/assets/css/normalize.css">
<link rel="stylesheet" href="/assets/css/gridism.css">
<link rel="stylesheet" href="/assets/css/syntax.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/indeed-styles.css">
<link rel="stylesheet" href="/assets/css/styles-minimalist.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target="#toc">
<div id="blogHeader" class="full-width-wrapper">
<div class="container">
<div class="row">
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#headerNavLinks">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="https://engineering.indeedblog.com/" class="navbar-brand">
<img src="https://rac4ou2q3g246tjk3rxqbt1c-wpengine.netdna-ssl.com/wp-content/themes/indeedblog/images/ind-eng-logo.png" alt="Indeed Engineering" width="300" scale="0">
</a>
</div>
<div id="headerNavLinks" class="collapse navbar-collapse">
<ul class="">
<li id="menu-item-1211" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211">
<a href="https://engineering.indeedblog.com/blog">Engineering Blog</a>
</li>
<li id="menu-item-1212" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212">
<a href="https://engineering.indeedblog.com/talks">Tech Talks</a>
</li>
<li id="menu-item-1214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1214">
<a href="https://opensource.indeedeng.io/">Open Source</a>
</li>
<li id="menu-item-1213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1213">
<a href="https://indeed.jobs">Work at Indeed</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<section>
<div class="grid">
<div class="unit one-fifth" id="leftnav">
<div id="stickyNav" data-spy="affix" data-offset-bottom="50">
<nav>
<p><button data-toggle="collapse" data-target="#global_nav" id="navbutton">Proctor - All Topics</button></p>
<div id="global_nav" class="collapse">
<div style="width: 100%">
<h3 data-toc-skip>Getting Started</h3>
<a href="/">Introduction</a>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/overview/">Deploying</a></li>
<li class=""><a href="/docs/quick-start/">Quick Start</a></li>
</ul>
<h3 data-toc-skip>Application Usage</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/key-features/">Loading Test Matrix</a></li>
</ul>
<h3 data-toc-skip>Contributing</h3>
<ul style="list-style-type: none; padding: 0; margin-left: 0">
<li class=""><a href="/docs/contributing/">Contributing</a></li>
</ul>
<br style="clear: left;" />
</div>
</div>
</nav>
<nav id="toc" data-toggle="toc"></nav>
<!--custom script to hide/show the floating page TOC-->
<script>
function hideObject( element ) {
$( element ).toggle();
}
$( "#navbutton" ).click(function() {
hideObject( "#toc");
});
$( "#stickyNav" ).attr( "data-offset-top", $( "#blogHeader" ).height()+10 );
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$( window ).resize(function() {
$( "#stickyNav" ).attr( "style", "width:" + $( "#leftnav" ).width() + "px;" );
$('#stickyNav').data('bs.affix').options.offset = $('#stickyNav').offset().top;
});
</script>
<!---->
</div>
</div>
<div class="unit four-fifths" style="min-height:775px;">
<article>
<h1>K8dash</h1>
<h3>Coming Soon!</h3>
<!--img src="/images/k8dash.png" style="max-width:125px;max-height:125px;clear:both;padding:10px;" /-->
</article>
</div>
<div class="clear"></div>
</div>
</section>
<footer>
<!DOCTYPE html>
<html>
<body>
<div>Proctor is licensed under <a href="https://github.com/indeedeng/imhotep/blob/master/LICENSE">Apache License Version 2.0.</a></div>
<div>This site is maintained by <a href="http://github.com/indeedeng">Indeed.com</a> (<a href="http://engineering.indeedblog.com/blog">engineering.indeedblog.com</a>)</div>
<div><small>Hosted on GitHub Pages &mdash; Theme adapted from <a href="https://github.com/orderedlist/minimal">minimal by orderedlist</a></small></div>
</footer>
</div>
</body>
</html>
</footer>
</div>
<!---->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90780-24', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
+113
View File
@@ -0,0 +1,113 @@
/*
* Gridism
* A simple, responsive, and handy CSS grid by @cobyism
* https://github.com/cobyism/gridism
*/
/* Preserve some sanity */
.grid,
.unit {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Set up some rules to govern the grid */
.grid {
display: block;
clear: both;
}
.grid .unit {
float: left;
width: 100%;
padding: 10px;
}
/* This ensures the outer gutters are equal to the (doubled) inner gutters. */
.grid .unit:first-child { padding-left: 20px; }
.grid .unit:last-child { padding-right: 20px; }
/* Nested grids already have padding though, so lets nuke it */
.unit .unit:first-child { padding-left: 0; }
.unit .unit:last-child { padding-right: 0; }
.unit .grid:first-child > .unit { padding-top: 0; }
.unit .grid:last-child > .unit { padding-bottom: 0; }
/* Let people nuke the gutters/padding completely in a couple of ways */
.no-gutters .unit,
.unit.no-gutters {
padding: 0 !important;
}
/* Wrapping at a maximum width is optional */
.wrap .grid,
.grid.wrap {
max-width: 978px;
margin: 0 auto;
}
/* Width classes also have shorthand versions numbered as fractions
* For example: for a grid unit 1/3 (one third) of the parent width,
* simply apply class="w-1-3" to the element. */
.grid .whole, .grid .w-1-1 { width: 100%; }
.grid .half, .grid .w-1-2 { width: 50%; }
.grid .one-third, .grid .w-1-3 { width: 33.3332%; }
.grid .two-thirds, .grid .w-2-3 { width: 66.6665%; }
.grid .one-quarter, .grid .w-1-4 { width: 25%; }
.grid .three-quarters, .grid .w-3-4 { width: 75%; }
.grid .one-fifth, .grid .w-1-5 { width: 20%; }
.grid .two-fifths, .grid .w-2-5 { width: 40%; }
.grid .three-fifths, .grid .w-3-5 { width: 60%; }
.grid .four-fifths, .grid .w-4-5 { width: 80%; }
.grid .golden-small, .grid .w-g-s { width: 38.2716%; } /* Golden section: smaller piece */
.grid .golden-large, .grid .w-g-l { width: 61.7283%; } /* Golden section: larger piece */
/* Clearfix after every .grid */
.grid {
*zoom: 1;
}
.grid:before, .grid:after {
display: table;
content: "";
line-height: 0;
}
.grid:after {
clear: both;
}
/* Utility classes */
.align-center { text-align: center; }
.align-left { text-align: left; }
.align-right { text-align: right; }
.pull-left { float: left; }
.pull-right { float: right; }
/* Responsive Stuff */
@media screen and (max-width: 568px) {
/* Stack anything that isnt full-width on smaller screens */
.grid .unit {
width: 100% !important;
padding-left: 20px;
padding-right: 20px;
}
.unit .grid .unit {
padding-left: 0px;
padding-right: 0px;
}
/* Sometimes, you just want to be different on small screens */
.center-on-mobiles {
text-align: center !important;
}
.hide-on-mobiles {
display: none !important;
}
}
/* Expand the wrap a bit further on larger screens */
@media screen and (min-width: 1180px) {
.wider .grid {
max-width: 1180px;
margin: 0 auto;
}
}
File diff suppressed because it is too large Load Diff
+408
View File
@@ -0,0 +1,408 @@
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct `inline-block` display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9.
* Hide the `template` element in IE, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Address `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Correct font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
color: #000000;
background-color: #FFFFFF;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre-wrap;
}
/**
* Set consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 2 */
margin: 0; /* 3 */
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
+122
View File
@@ -0,0 +1,122 @@
/* Theme by Steve Smith (orderedlist) : https://github.com/orderedlist/minimal */
@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
body {
padding:0;
font-family: 'Avenir', Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
font-weight:300;
}
header {
padding-top: 20px;
}
h3 {
header, section, article, footer {
padding-left: 0;
margin-left: 0;
}
h1, h2, h3, h4, h5, h6 {
color:#222;
margin:0 0 20px;
}
p, ul, ol, table, pre, dl {
margin:0 0 20px;
}
h1, h2, h3 {
line-height:1.1;
}
h2 {
color:#393939;
}
h3, h4, h5, h6 {
color:#494949;
}
a {
color:#00c;
text-decoration:none;
}
a:hover {
color:#069;
}
a small {
font-size:11px;
color:#777;
margin-top:-0.6em;
display:block;
}
a:hover small {
color:#777;
}
blockquote {
border-left:1px solid #e5e5e5;
margin:0;
padding:0 0 0 20px;
font-style:italic;
}
code, pre {
font-family:Monospace, Bitstream Vera Sans Mono, Lucida Console, Terminal;
color:#333;
font-size:14px;
}
pre {
padding:8px 15px;
background: #f8f8f8;
border-radius:5px;
border:1px solid #e5e5e5;
overflow-x: auto;
}
table {
width:100%;
border-collapse:collapse;
}
th, td {
text-align:left;
padding:5px 10px;
border-bottom:1px solid #e5e5e5;
}
dt {
color:#444;
font-weight:700;
}
th {
color:#444;
}
img {
max-width:100%;
}
strong {
color:#222;
font-weight:700;
}
small {
font-size:11px;
}
hr {
border:0;
background:#e5e5e5;
height:1px;
margin:0 0 20px;
}
+71
View File
@@ -0,0 +1,71 @@
article {
padding: 0 20px 20px;
margin: 0 10px;
}
aside {
padding: 0 0 20px;
}
aside h1, aside h2, aside h3, aside h4, aside h5, aside h6 {
margin-bottom: 5px;
}
table code {
white-space: nowrap;
color: #000000;
background-color: #E8E8EE;
}
td {
vertical-align: top;
}
span.smallcode code {
font-family: 'Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal';
font-size: 12px;
white-space: normal;
}
span.xscode code {
font-family: 'Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal';
font-size: 10px;
white-space: normal;
}
span.smallcode,span.xscode a code {
color: #39c;
}
.ui-allocation-bar{
display:block;
border:1px solid #BBB;
overflow:hidden;
padding:5px;
background-color:#FFF;
}
.ui-allocation-range{
display:inline-block;
float:left;
text-align:center;
white-space:nowrap;
padding:5px 0;
overflow:hidden;
}
.ui-allocation-range-lbl{
text-align:center;
}
.ui-color-1{background-color:#FFED6F;}
.ui-color0{background-color:#8DD3C7;}
.ui-color1{background-color:#FFFFB3;}
.ui-color2{background-color:#BEBADA;}
.ui-color3{background-color:#FB8072;}
.ui-color4{background-color:#80B1D3;}
.ui-color5{background-color:#FDB462;}
.ui-color6{background-color:#B3DE69;}
.ui-color7{background-color:#FCCDE5;}
.ui-color8{background-color:#D9D9D9;}
.ui-color9{background-color:#BC80BD;}
.ui-color10{background-color:#CCEBC5;}
+69
View File
@@ -0,0 +1,69 @@
.highlight { background: #f5f5f5; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kn { font-weight: bold } /* Keyword.Namespace */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }
+33
View File
@@ -0,0 +1,33 @@
// renders table-of-contents for the given page
// alternative to https://github.com/dafi/jekyll-toc-generator or https://github.com/dafi/tocmd-generator
if(typeof document.querySelectorAll === 'function') {
var toc = document.querySelectorAll('[id^=toc]'),
len = toc.length,
df = document.createDocumentFragment(),
sidebar = document.querySelector('aside'),
main_header = document.querySelector('article > h1'),
h4, ul, li, anchor, i;
if(len > 0) {
ul = document.createElement('ul');
for(i = 0; i < len; i++) {
// restrict to h1,h2,h3
if(toc[i].nodeName == 'H1' || toc[i].nodeName == 'H2' || toc[i].nodeName == 'H3') {
li = document.createElement('li');
anchor = document.createElement('a');
anchor.href = '#' + toc[i].id;
anchor.innerText = toc[i].innerText;
anchor.title = 'Jump to ' + toc[i].innerText;
li.appendChild(anchor);
ul.appendChild(li);
}
}
h4 = document.createElement('h4');
h4.innerText = "On this page";
df.appendChild(h4);
df.appendChild(ul);
sidebar.insertBefore(df, sidebar.firstChild);
}
}
-1
View File
@@ -1 +0,0 @@
build/**
-49
View File
@@ -1,49 +0,0 @@
{
"extends": ["airbnb-base","plugin:react/recommended"],
"env": {
"browser": true,
"jest": true
},
"plugins": ["react"],
"parser": "babel-eslint",
"parserOptions": {
"jsx": true
},
"rules": {
"indent": [
"error",
4,
{
"SwitchCase": 1
}
],
"eqeqeq": [
"error",
"always",
{
"null": "ignore"
}
],
"object-curly-spacing": [
"error",
"never"
],
"object-curly-newline": [
"error",
{
"consistent": true
}
],
"no-use-before-define": [
"error",
{
"functions": false
}
],
"no-await-in-loop": "off",
"no-restricted-syntax": "off",
"no-plusplus": "off",
"class-methods-use-this": "off",
"react/prop-types": "off"
}
}
-68
View File
@@ -1,68 +0,0 @@
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.<br>
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.<br>
You will also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.<br>
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.<br>
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.<br>
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you cant go back!**
If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
### Code Splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
### Analyzing the Bundle Size
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
### Making a Progressive Web App
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
### Advanced Configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
### Deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
### `npm run build` fails to minify
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
-15935
View File
File diff suppressed because it is too large Load Diff
-46
View File
@@ -1,46 +0,0 @@
{
"name": "client",
"version": "0.1.0",
"private": true,
"homepage": ".",
"dependencies": {
"ansi-to-react": "^5.1.1",
"humanize-duration": "3.21.0",
"js-base64": "^2.5.2",
"js-cookie": "^2.2.1",
"lodash": "^4.17.15",
"node-sass": "^4.14.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-modal": "^3.11.2",
"react-scripts": "3.0.1",
"react-select": "^3.1.0",
"react-swipeable": "^5.5.1",
"react-switch": "^5.0.1",
"swagger-parser": "^7.0.1",
"xterm": "^3.14.5",
"yamljs": "^0.3.0"
},
"scripts": {
"start": "PORT=4653 react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">5%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"devDependencies": {
"eslint": "^5.16.0",
"eslint-config-airbnb": "^17.1.1",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.19.0"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

-36
View File
@@ -1,36 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<script>
let basePath = window.location.pathname;
if (!basePath.endsWith('/')) basePath += '/';
document.write(`<base href="${basePath}">`);
</script>
<meta charset="utf-8" />
<link rel="shortcut icon" href="./favicon.ico" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no"
/>
<meta name="theme-color" content="#326ce5" />
<link rel="manifest" href="./manifest.json" />
<link rel="apple-touch-icon" sizes="512x512 192x192 144x144 64x64 32x32 24x24 16x16" href="./logo.png">
<link rel="apple-touch-startup-image" href="./logo.png">
<title>K8Dash</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

-15
View File
@@ -1,15 +0,0 @@
{
"short_name": "K8Dash",
"name": "K8Dash - Kubernetes Dashboard",
"icons": [
{
"src": "logo.png",
"sizes": "512x512 192x192 144x144 64x64 32x32 24x24 16x16",
"type": "image/png"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#326ce5",
"background_color": "#344055"
}
-62
View File
@@ -1,62 +0,0 @@
import React, {Component, Fragment} from 'react';
import Menu from './components/menu';
import {Notifier} from './components/notifier';
import Error from './components/error';
import {initRouter} from './router';
import log from './utils/log';
import Button from './components/button';
import LogoSvg from './art/logoSvg';
import HamburgerSvg from './art/hamburgerSvg';
const genericError = (
<div id='content'>
<Error messages={['There was an error and this content was unable to be displayed.']} />
</div>
);
class App extends Component {
componentDidMount() {
initRouter((content) => {
this.setState({content, contentDate: Date.now(), hasError: false});
window.scrollTo(0, 0);
});
}
componentDidCatch(err, info) { // eslint-disable-line class-methods-use-this
log.error('Error rendering ', {err, info});
this.setState({hasError: true});
}
render() {
const {content, contentDate, hasError, menuToggled} = this.state || {};
return (
<>
<div id='titleBar'>
<Button className='button_clear titleBar_hamburger' onClick={() => this.setState({menuToggled: !menuToggled})}>
<HamburgerSvg className='svg_button' />
</Button>
<a href='#!'>
<LogoSvg className='titleBar_logo' />
</a>
</div>
<div id='shell'>
<Menu
toggled={menuToggled}
onClick={() => this.setState({menuToggled: false})}
/>
<Fragment key={contentDate}>
{hasError ? genericError : content}
</Fragment>
</div>
<Notifier />
</>
);
}
}
export default App;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const AddSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" fillRule="evenodd" clipRule="evenodd" viewBox="0 0 24 24" {...props}>
<path d="M11.5 0C17.847 0 23 5.153 23 11.5S17.847 23 11.5 23 0 17.847 0 11.5 5.153 0 11.5 0zm0 1C17.295 1 22 5.705 22 11.5S17.295 22 11.5 22 1 17.295 1 11.5 5.705 1 11.5 1zm.5 10h6v1h-6v6h-1v-6H5v-1h6V5h1v6z"/>
</svg>
);
export default AddSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const arrowDownSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 292.362 292.362" {...props}>
<path d="M286.935 69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952 0-9.233 1.807-12.85 5.424C1.807 72.998 0 77.279 0 82.228c0 4.948 1.807 9.229 5.424 12.847l127.907 127.907c3.621 3.617 7.902 5.428 12.85 5.428s9.233-1.811 12.847-5.428L286.935 95.074c3.613-3.617 5.427-7.898 5.427-12.847 0-4.948-1.814-9.229-5.427-12.85z"/>
</svg>
);
export default arrowDownSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const arrowUpSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 292.362 292.362" {...props}>
<path d="M286.935 197.286L159.028 69.379c-3.613-3.617-7.895-5.424-12.847-5.424s-9.233 1.807-12.85 5.424L5.424 197.286C1.807 200.9 0 205.184 0 210.132s1.807 9.233 5.424 12.847c3.621 3.617 7.902 5.428 12.85 5.428h255.813c4.949 0 9.233-1.811 12.848-5.428 3.613-3.613 5.427-7.898 5.427-12.847s-1.814-9.232-5.427-12.846z"/>
</svg>
);
export default arrowUpSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const CancelSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M112.78 205.8A66.43 66.43 0 0 0 150 217.16a66.89 66.89 0 0 0 66.8-66.8 66.43 66.43 0 0 0-11.35-37.23l-92.67 92.67zM150 83.54a66.88 66.88 0 0 0-66.8 66.81c0 15.6 5.38 29.95 14.37 41.33l93.75-93.76A66.43 66.43 0 0 0 150 83.54z"/>
<path d="M150 0C67.16 0 0 67.16 0 150s67.16 150 150 150 150-67.16 150-150S232.84 0 150 0zm0 237.9c-48.28 0-87.56-39.27-87.56-87.55 0-48.28 39.28-87.56 87.56-87.56s87.56 39.28 87.56 87.56-39.28 87.56-87.56 87.56z"/>
</svg>
);
export default CancelSvg;
-14
View File
@@ -1,14 +0,0 @@
import React from 'react';
const ClusterRoleBindingSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.03533 17.50038" {...props}>
<path d="M8.95834.46317a1.13579 1.1265 0 0 0-.43526.11015L2.58354 3.41129a1.13579 1.1265 0 0 0-.61454.76419l-1.46533 6.3748a1.13579 1.1265 0 0 0 .1542.8637 1.13579 1.1265 0 0 0 .06458.08964l4.1111 5.11154a1.13579 1.1265 0 0 0 .88801.42387l6.59282-.00152a1.13579 1.1265 0 0 0 .888-.42311l4.1096-5.1123a1.13579 1.1265 0 0 0 .21953-.95333l-1.4676-6.37481a1.13579 1.1265 0 0 0-.61454-.76419L9.50907.57332a1.13579 1.1265 0 0 0-.55073-.11015z"/>
<path d="M8.95515.00157a1.19902 1.1892 0 0 0-.45881.11698L2.2256 3.11377a1.19902 1.1892 0 0 0-.64872.80673l-1.5466 6.72955a1.19902 1.1892 0 0 0 .16255.91231 1.19902 1.1892 0 0 0 .06837.0942l4.33976 5.3964a1.19902 1.1892 0 0 0 .93738.44742l6.95972-.00152a1.19902 1.1892 0 0 0 .93738-.44667l4.33824-5.39716a1.19902 1.1892 0 0 0 .23169-1.00575l-1.54888-6.7303a1.19902 1.1892 0 0 0-.64872-.80597L9.53703.11779a1.19902 1.1892 0 0 0-.58188-.11622zm.00304.46185a1.13579 1.1265 0 0 1 .55073.11015l5.9403 2.83645a1.13579 1.1265 0 0 1 .61454.7642l1.4676 6.3748a1.13579 1.1265 0 0 1-.21953.95333l-4.1096 5.1123a1.13579 1.1265 0 0 1-.888.42312l-6.59282.00152a1.13579 1.1265 0 0 1-.888-.42387L.7223 11.50388a1.13579 1.1265 0 0 1-.06457-.08964 1.13579 1.1265 0 0 1-.1542-.8637l1.46532-6.3748a1.13579 1.1265 0 0 1 .61454-.76419L8.52293.57358a1.13579 1.1265 0 0 1 .43526-.11015z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81178" x="10.01098" fontWeight="400" fontSize="10.58333" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458" transform="translate(-.99263 -1.17418)">
<tspan y="16.81178" x="10.01098" fontSize="2.82222" fontFamily="Arial" textAnchor="middle">crb</tspan>
</text>
<path d="M5.8895 8.43399c0-.66039.53683-1.1972 1.1972-1.1972h1.54478v-.73376H7.0867c-1.0659 0-1.93095.86507-1.93095 1.93096s.86506 1.93095 1.93095 1.93095h1.54477v-.73376H7.0867c-.66038 0-1.1972-.5368-1.1972-1.1972zm1.5834.38619h3.08953V8.0478H7.4729zm3.47573-2.31715H9.40386v.73377h1.54477c.66038 0 1.19718.5368 1.19718 1.19719 0 .66038-.5368 1.1972-1.19718 1.1972H9.40386v.73375h1.54477c1.06589 0 1.93095-.86506 1.93095-1.93095s-.86506-1.93096-1.93095-1.93096z" fill="#fff"/>
</svg>
);
export default ClusterRoleBindingSvg;
-18
View File
@@ -1,18 +0,0 @@
import React from 'react';
const ClusterRoleSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.0353 17.5004" {...props}>
<path d="M8.9583.4632a1.1358 1.1265 0 0 0-.4352.1101l-5.9396 2.838a1.1358 1.1265 0 0 0-.6145.7642L.5037 10.5503a1.1358 1.1265 0 0 0 .1542.8637 1.1358 1.1265 0 0 0 .0645.0896l4.1112 5.1116a1.1358 1.1265 0 0 0 .888.4238l6.5928-.0015a1.1358 1.1265 0 0 0 .888-.4231l4.1096-5.1123a1.1358 1.1265 0 0 0 .2195-.9533L16.064 4.174a1.1358 1.1265 0 0 0-.6145-.7642L9.509.5733a1.1358 1.1265 0 0 0-.5508-.1101z"/>
<path d="M8.9552.0016a1.199 1.1892 0 0 0-.4589.117L2.2256 3.1138a1.199 1.1892 0 0 0-.6487.8067L.0303 10.65a1.199 1.1892 0 0 0 .1625.9124 1.199 1.1892 0 0 0 .0684.0942L4.601 17.053a1.199 1.1892 0 0 0 .9373.4474l6.9598-.0015a1.199 1.1892 0 0 0 .9373-.4467l4.3383-5.3972a1.199 1.1892 0 0 0 .2317-1.0057l-1.549-6.7303a1.199 1.1892 0 0 0-.6486-.806L9.537.1178a1.199 1.1892 0 0 0-.5818-.1162zm.003.4618a1.1358 1.1265 0 0 1 .5507.1102L15.4492 3.41a1.1358 1.1265 0 0 1 .6146.7642l1.4676 6.3748a1.1358 1.1265 0 0 1-.2196.9534l-4.1096 5.1123a1.1358 1.1265 0 0 1-.888.423l-6.5928.0016a1.1358 1.1265 0 0 1-.888-.4239L.7223 11.504a1.1358 1.1265 0 0 1-.0646-.0897 1.1358 1.1265 0 0 1-.1542-.8637l1.4653-6.3748a1.1358 1.1265 0 0 1 .6146-.7641L8.5229.5736a1.1358 1.1265 0 0 1 .4353-.1102z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.8118" x="10.0144" fontWeight="400" fontSize="10.5833" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".2646" transform="translate(-.9926 -1.1742)">
<tspan y="16.8118" x="10.0144" fontSize="2.8222" fontFamily="Arial" textAnchor="middle">c.role</tspan>
</text>
<g fill="#fff" transform="translate(-.9926 -1.1742)">
<ellipse ry=".5023" rx=".5063" cy="9.9493" cx="9.9283"/>
<path d="M10.011 5.8762L6.9028 7.2504v2.0505c0 1.901 1.3248 3.678 3.108 4.1098 1.7808-.4319 3.1068-2.2088 3.1068-4.1098V7.2504zm1.6451 5.5182H8.3644V8.631h.4725v-.3015c0-.651.5319-1.1791 1.1892-1.1791.6574 0 1.1893.5281 1.1893 1.1791v.3015h.4407z"/>
<path d="M9.9878 7.589c-.3939.0014-.713.318-.713.708v.2964h1.4273V8.292c-.0038-.3889-.3217-.7017-.7143-.703z"/>
</g>
</svg>
);
export default ClusterRoleSvg;
-18
View File
@@ -1,18 +0,0 @@
import React from 'react';
const ConfigMapSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.047501" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="10.047501" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">cm</tspan>
</text>
<g transform="translate(-.87483657 -1.174181)">
<path d="M8.236948 6.2914262h5.825001M5.723058 6.2914262h1.45834" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M10.353619 8.4080928h3.70833" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M7.839728 8.4080928h1.4583305M10.353619 10.52476h3.70833M7.839728 10.52476h1.4583305M8.236948 12.641428h5.825001M5.723058 12.641428h1.45834" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
</g>
</svg>
);
export default ConfigMapSvg;
-20
View File
@@ -1,20 +0,0 @@
import React from 'react';
const CronJobSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.010983"
fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan
y="16.811775" x="10.010983" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">cronjob</tspan>
</text>
<g fill="#fff">
<path d="M10.10198738 2.7858537v2.142506h2.20296v-2.142506zm0 3.08405v.5462191c.2587-.06122.52685-.09715.80357-.09715.49701 0 .96978.106323 1.39939.2945548v-.7436239zm-6.2838598.03307v2.1425051h2.20297V5.9029737zm3.1419301 0v2.1425051h.9281098c.3102901-.520329.7495899-.954616 1.2748599-1.2572889v-.8852163zM3.79797748 9.020096v2.142506h2.2029701V9.020096zm3.1517501 0v2.142506h.7064101c-.16935-.410763-.26458-.859621-.26458-1.329635 0-.28008.0371-.551296.0997-.812871z"/>
<path d="M12.608072 7.9394728c-1.7599 0-3.1997998 1.439912-3.1997998 3.1998052 0 1.759893 1.4398998 3.199805 3.1997998 3.199805 1.75989 0 3.199799-1.439912 3.199799-3.199805 0-1.7598932-1.439909-3.1998052-3.199799-3.1998052zm1.34392 4.5437232l-1.6639-1.023938V9.5393748h.47997v1.6639002l1.43992.863947z" clipPath="url(#b)" transform="translate(-1.57051462 -1.174181)"/>
</g>
</svg>
);
export default CronJobSvg;
-23
View File
@@ -1,23 +0,0 @@
import React from 'react';
const DaemonSetSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.016495"
fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan
y="16.811775" x="10.016495" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">ds</tspan>
</text>
<g>
<path d="M7.30195097 4.1085938h6.524989v4.5833348h-6.524989z" fill="none" stroke="#fff" strokeWidth=".52914584" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58743756 1.58743756" strokeDashoffset="3.66698074"/>
<path d="M3.94382097 12.432571h7.074559" fill="none" stroke="#fff" strokeWidth=".61833036"/>
<path d="M5.76320097 5.5199045h6.524989V10.10324h-6.524989z" fillRule="evenodd" stroke="#fff" strokeWidth=".52914584" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58743756 1.58743756" strokeDashoffset="3.87863898"/>
<path d="M4.22445097 6.9312173h6.524999v4.5833347h-6.524999z" fill="none" stroke="#fff" strokeWidth=".52916664" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M4.18017117 6.9484851h6.5250018v4.5833339h-6.5250018z" fill="#fff" fillRule="evenodd"/>
</g>
</svg>
);
export default DaemonSetSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const DeleteSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.816 83.816" {...props}>
<path d="M54.074 33.163H29.741c-.551 0-1 .449-1 1V58.83c0 .551.449 1 1 1h24.333c.551 0 1-.449 1-1V34.163c0-.552-.449-1-1-1zm-19.166 23c0 .552-.448 1-1 1s-1-.448-1-1v-19c0-.552.448-1 1-1s1 .448 1 1v19zm4 0c0 .552-.448 1-1 1s-1-.448-1-1v-19c0-.552.448-1 1-1s1 .448 1 1v19zm4 0c0 .552-.448 1-1 1s-1-.448-1-1v-19c0-.552.448-1 1-1s1 .448 1 1v19zm4 0c0 .552-.448 1-1 1-.553 0-1-.448-1-1v-19c0-.552.447-1 1-1 .552 0 1 .448 1 1v19zm4 0c0 .552-.448 1-1 1-.553 0-1-.448-1-1v-19c0-.552.447-1 1-1 .552 0 1 .448 1 1v19zM54.074 24.534h-7.167c-.552 0-1-.448-1-1v-.872c0-.551-.449-1-1-1h-6c-.551 0-1 .449-1 1v.872c0 .552-.448 1-1 1H29.74c-.551 0-1 .449-1 1v1.128c0 .551.449 1 1 1h24.333c.551 0 1-.449 1-1v-1.128c.001-.551-.448-1-.999-1z"/>
<path d="M41.908 0C18.762 0 0 18.763 0 41.909c0 23.146 18.763 41.907 41.908 41.907s41.908-18.762 41.908-41.907C83.816 18.763 65.053 0 41.908 0zm15.166 58.829c0 1.653-1.346 3-3 3H29.741c-1.654 0-3-1.347-3-3V34.163c0-1.654 1.346-3 3-3h24.333c1.654 0 3 1.346 3 3v24.666zm0-32.166c0 1.654-1.346 3-3 3H29.741c-1.654 0-3-1.346-3-3v-1.128c0-1.654 1.346-3 3-3h6.169c.067-1.595 1.386-2.872 2.997-2.872h6c1.61 0 2.931 1.277 2.997 2.872h6.169c1.653 0 3 1.346 3 3l.001 1.128z"/>
</svg>
);
export default DeleteSvg;
-20
View File
@@ -1,20 +0,0 @@
import React from 'react';
const DeploymentSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.97"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.97" fontSize="2.82" fontFamily="Arial" textAnchor="middle">deploy</tspan>
</text>
<g fill="#fff" fillRule="evenodd">
<path d="M8.58 12.56a4.45 4.45 0 1 1 4.23-4.73l-1.76.11A2.69 2.69 0 1 0 8.5 10.8z"/>
<path d="M9.49 7.83l1.4 3.43 3.22-3.43z"/>
</g>
</svg>
);
export default DeploymentSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const EditSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M149.996 0C67.157 0 .001 67.161.001 149.997S67.157 300 149.996 300s150.003-67.163 150.003-150.003S232.835 0 149.996 0zm71.306 107.945l-14.247 14.247-29.001-28.999-11.002 11.002 29.001 29.001-71.132 71.126-28.999-28.996-11.002 11.002 28.999 28.999-7.088 7.088-.135-.135c-.786 1.294-2.064 2.238-3.582 2.575l-27.043 6.03c-.405.091-.817.135-1.224.135-1.476 0-2.91-.581-3.973-1.647-1.364-1.359-1.932-3.322-1.512-5.203l6.027-27.035c.34-1.517 1.286-2.798 2.578-3.582l-.137-.137L192.3 78.941c1.678-1.675 4.404-1.675 6.082.005l22.922 22.917c1.678 1.678 1.678 4.404-.002 6.082z"/>
</svg>
);
export default EditSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const ExecSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M78.841 216.367c0 4.186 3.408 7.594 7.597 7.594H213.56c4.189 0 7.597-3.405 7.597-7.594v-85.456H78.841v85.456zM221.154 98.03c.002-4.186-3.406-7.594-7.594-7.594H86.438c-4.189 0-7.597 3.405-7.597 7.594v17.32h142.313V98.03zm-119.137 11.251h-9.736V98.906h9.736v10.375zm17.67 0h-9.736V98.906h9.736v10.375zm17.668 0h-9.736V98.906h9.736v10.375z"/>
<path d="M149.996 0C67.157 0 .001 67.161.001 149.997S67.157 300 149.996 300s150.003-67.163 150.003-150.003S232.835 0 149.996 0zm86.722 216.367c0 12.768-10.39 23.156-23.158 23.156H86.438c-12.768 0-23.158-10.387-23.158-23.156V98.03c0-12.768 10.387-23.156 23.158-23.156H213.56c12.768 0 23.158 10.387 23.158 23.156v118.337z"/>
</svg>
);
export default ExecSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const HamburgerSvg = props => (
<svg version="1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" {...props}>
<path d="M4 10h24a2 2 0 0 0 0-4H4a2 2 0 0 0 0 4zm24 4H4a2 2 0 0 0 0 4h24a2 2 0 0 0 0-4zm0 8H4a2 2 0 0 0 0 4h24a2 2 0 0 0 0-4z"/>
</svg>
);
export default HamburgerSvg;
-14
View File
@@ -1,14 +0,0 @@
import React from 'react';
const IngressSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.008915" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="10.008915" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">ing</tspan>
</text>
<path d="M11.76536362 12.542075h-2.270701l-4.9209009-6.1558614h-1.42366V4.3713067h2.31473l4.9230119 6.1558533h1.37752V8.933686l3.119869 2.599882-3.119869 2.601983zm-2.47616-4.7552748l1.09864-1.3754256h1.37752v1.593475l3.119869-2.5998829-3.119869-2.601983v1.593483h-2.270701l-1.4571904 1.8241102zM5.69128172 9.151743l-1.11752 1.400578h-1.42366v2.014915h2.31473l1.4781699-1.849278z" fill="#fff"/>
</svg>
);
export default IngressSvg;
-16
View File
@@ -1,16 +0,0 @@
import React from 'react';
const JobSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.130872" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="10.130872" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">job</tspan>
</text>
<g fill="#fff">
<path d="M4.76416207 9.703665h2.2029927v2.1426713h-2.2029927zM7.91617107 9.703665h2.2029927v2.1426713h-2.2029927zM11.06817897 9.703665h2.2029927v2.1426713h-2.2029927zM11.06817897 6.5534725h2.2029927v2.1426713h-2.2029927zM7.92624287 6.5865459h2.2029927v2.1426713h-2.2029927zM4.78431987 6.5865459h2.2029927v2.1426713h-2.2029927zM11.06817897 3.4694195h2.2029927v2.1426713h-2.2029927z"/>
</g>
</svg>
);
export default JobSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const lightBulbSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M149.996 0C67.157 0 .001 67.161.001 149.997S67.157 300 149.996 300s150.003-67.163 150.003-150.003S232.835 0 149.996 0zm-1.245 218.468c-12.893 0-23.342-11.082-23.342-24.764h46.685c-.001 13.682-10.453 24.764-23.343 24.764zm21.662-37.773h-43.326c-1.167-12.753-31.476-23.871-31.476-55.747 0-33.999 25.425-52.027 53.135-52.709h.006c27.712.685 53.135 18.71 53.135 52.709.002 31.876-30.307 42.994-31.474 55.747z"/>
</svg>
);
export default lightBulbSvg;
-11
View File
@@ -1,11 +0,0 @@
import React from 'react';
const LoadingSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 740" {...props}>
<path d="M381 118c-8 0-15 8-15 17v4l2 14 2 26-5 8v6a190 190 0 0 0-122 59l-6-4c-2 0-5 1-8-1-7-4-13-10-20-18l-10-10-3-2c-3-3-7-4-10-4-5 0-9 1-12 5-5 6-3 16 4 21v1l3 2 12 7 22 15 3 9 5 4c-25 38-37 84-30 132l-6 2c-2 2-4 5-7 6l-26 4-14 1-4 1c-9 3-14 10-13 18 2 8 11 13 19 11h1l4-1 13-5 25-8c4 0 7 2 9 3l6-1c15 46 45 83 84 106l-2 6c1 3 2 6 1 8-3 8-8 15-13 24-3 4-6 7-8 12l-2 4c-4 8-1 17 6 21 8 3 17-1 20-9h1l1-4 5-13c3-10 6-20 11-26 1-2 4-3 6-3l3-6a189 189 0 0 0 135 0l4 6c2 1 5 1 7 4 4 7 7 15 10 25l4 13 2 4c4 8 13 12 20 8 8-3 10-12 7-21l-2-3-8-12-13-23c-1-4 0-6 1-9l-2-6c40-24 70-62 84-106l6 1c2-1 4-3 8-3 8 1 16 4 26 8l13 5 4 1c9 2 17-3 19-11s-4-16-12-18l-5-1-14-1-26-4c-3-1-5-5-6-7l-6-1a189 189 0 0 0-30-132l5-5c0-2 0-5 2-8l22-15 12-7 4-3c7-5 8-15 3-21-5-7-15-7-22-2l-3 3-10 10-19 18c-3 2-7 1-9 1l-6 4c-31-33-75-55-121-59v-6c-2-2-5-4-5-8-1-8 0-16 1-26l2-14v-4c0-9-6-17-14-17zm-19 114l-4 77a13 13 0 0 1-21 10l-63-45a151 151 0 0 1 88-42zm37 0c33 4 64 19 88 42l-63 44a13 13 0 0 1-20-9h-1zm-148 71l58 51a13 13 0 0 1-5 23l-74 21c-4-34 4-67 21-95zm259 0a153 153 0 0 1 22 95l-74-21v-1a13 13 0 0 1-5-22l57-51zm-141 55h24l14 18-5 23-21 10-21-10-6-23zm75 63h4l76 13c-11 31-33 58-61 76l-30-71a13 13 0 0 1 11-18zm-127 0a13 13 0 0 1 11 18l-29 71c-27-18-49-44-61-76l76-13h3zm63 31l6 1c3 2 5 3 6 6l38 67a154 154 0 0 1-98 0l37-67c3-4 7-7 11-7z">
<animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 380 370;-360 380 370" keyTimes="0;1" dur="2s" begin="0s" repeatCount="indefinite"/>
</path>
</svg>
);
export default LoadingSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const LockSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.995 299.995" {...props}>
<path d="M149.997 161.485c-8.613 0-15.598 6.982-15.598 15.598 0 5.776 3.149 10.807 7.817 13.505v17.341h15.562v-17.341c4.668-2.697 7.817-7.729 7.817-13.505 0-8.616-6.984-15.598-15.598-15.598zM150.003 85.849c-13.111 0-23.775 10.665-23.775 23.775v25.319h47.548v-25.319c-.001-13.108-10.665-23.775-23.773-23.775z"/>
<path d="M149.995.001C67.156.001 0 67.159 0 149.998c0 82.837 67.156 149.997 149.995 149.997s150-67.161 150-149.997c0-82.839-67.161-149.997-150-149.997zm46.09 227.117h-92.173c-9.734 0-17.626-7.892-17.626-17.629V152.57c0-8.491 6.007-15.582 14.003-17.25v-25.697c0-27.409 22.3-49.711 49.711-49.711 27.409 0 49.709 22.3 49.709 49.711v25.697c7.993 1.673 14 8.759 14 17.25v56.919h.002c0 9.736-7.892 17.629-17.626 17.629z"/>
</svg>
);
export default LockSvg;
File diff suppressed because one or more lines are too long
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const LogoutSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M127.591 119.253l-13.258 13.258 22.406 22.406-22.406 22.406 13.258 13.259 22.406-22.406 22.406 22.406 13.259-13.259-22.406-22.406 22.406-22.406-13.259-13.258-22.406 22.406z"/>
<path d="M149.997 0C67.158 0 .003 67.161.003 149.997S67.158 300 149.997 300s150-67.163 150-150.003S232.837 0 149.997 0zM150 232.886c-77.185 0-82.683-130.592-82.683-130.592l82.681-35.187H150l82.681 35.187c0 .002-5.498 130.592-82.681 130.592z"/>
</svg>
);
export default LogoutSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const LogsSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M149.997 0C67.158 0 .003 67.161.003 149.997S67.158 300 149.997 300s150-67.163 150-150.003S232.837 0 149.997 0zm59.456 220.955c-1.644 0-3.268-.091-4.866-.254-1.46.163-2.944.254-4.448.254h-37.656l40.504-40.87c2.342-2.365 3.079-5.983 1.849-9.137-1.227-3.156-4.165-5.218-7.431-5.218h-19.958v-42.662c0-5.14-4.171-9.311-9.311-9.311h-28.231c-5.14 0-9.311 4.168-9.311 9.311v42.662h-21.576c-4.43 0-8.019 3.737-8.019 8.354 0 2.63 1.162 4.969 2.977 6.5l40.011 40.372H83.794c-21.916 0-39.684-17.771-39.684-39.684 0-18.256 12.327-33.615 29.108-38.245 1.854-15.541 15.058-27.598 31.094-27.598 4.85 0 9.428 1.136 13.526 3.105 7.973-22.188 29.188-38.053 54.118-38.053 29.896 0 54.455 22.821 57.227 51.988 15.779 7.42 26.709 23.454 26.709 42.045-.001 25.649-20.791 46.441-46.439 46.441z"/>
</svg>
);
export default LogsSvg;
-17
View File
@@ -1,17 +0,0 @@
import React from 'react';
const NamespaceSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.97"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.97" fontSize="2.82" fontFamily="Arial" textAnchor="middle">ns</tspan>
</text>
<path fill="none" stroke="#fff" strokeWidth=".4" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray=".8 .4" strokeDashoffset="3.44" d="M5.18 5.2h7.67v6.69H5.18z"/>
</svg>
);
export default NamespaceSvg;
-17
View File
@@ -1,17 +0,0 @@
import React from 'react';
const NodeSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.98"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.98" fontSize="2.82" fontFamily="Arial" textAnchor="middle">node</tspan>
</text>
<path d="M9 2.92c-.14 0-4 1.9-4.05 1.99-.12.23-1 4.28-.94 4.37l1.4 1.78 1.35 1.69h4.44l1.42-1.77 1.41-1.76-.5-2.17A39.4 39.4 0 0 0 13 4.84c-.07-.07-3.93-1.92-4-1.92zm.2.95l.9.26-.9.26-.91-.26zm-.91.36l.85.26v1.18l-.85-.47zm1.81 0v.97l-.84.47V4.49zM7.9 5.85l.92.26-.91.26L7 6.11zm2.22 0l.9.26-.9.26-.91-.26zM7 6.2l.85.25v1.19L7 7.18zm1.82 0v.97l-.85.47V6.46zm.39 0l.85.25v1.19l-.85-.47zm1.81 0v.97l-.84.47V6.46zM7.58 7.73c.27 0 .06.28.36.42.33.16.4-.23.6.07.21.3-.18.22-.15.58s.4.23.25.56c-.16.32-.29-.05-.59.15-.3.21 0 .46-.35.5-.36.02-.1-.28-.43-.43-.33-.16-.4.23-.6-.07-.21-.3.18-.22.15-.58s-.4-.23-.24-.55c.15-.33.28.04.58-.16.3-.2 0-.46.35-.5h.07zm2.33.36c.48.01.02.47.46.66.44.2.46-.45.8-.1.33.35-.32.34-.15.8.17.45.65 0 .64.49-.02.48-.47.01-.67.45-.2.44.46.47.1.8-.35.33-.34-.32-.79-.15-.45.18 0 .66-.49.64-.48-.01-.01-.46-.46-.66-.44-.2-.46.45-.8.1-.33-.35.32-.34.15-.8-.17-.44-.65 0-.64-.48.02-.49.47-.02.67-.46.2-.44-.46-.47-.1-.8.35-.33.34.32.79.15.45-.18 0-.65.5-.64zm-2.31.25a.53.53 0 1 0 0 1.07.53.53 0 0 0 0-1.07zm2.26.48a1.06 1.06 0 1 0 0 2.13 1.06 1.06 0 0 0 0-2.13z" fill="#fff"/>
</svg>
);
export default NodeSvg;
@@ -1,14 +0,0 @@
import React from 'react';
const PersistentVolumeClaimSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="9.9303675" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="9.9303675" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">pvc</tspan>
</text>
<path d="M13.64683362 6.9024603c0 .6211207-2.07255 1.1246391-4.62916 1.1246391-2.5566224 0-4.629173-.5035184-4.629173-1.1246391 0-.621119 2.0725506-1.124637 4.629173-1.124637 2.55661 0 4.62916.503518 4.62916 1.124637V9.944852c0 .62112-2.07255 1.124638-4.62916 1.124638-2.5566224 0-4.629173-.503518-4.629173-1.124638V6.9024603" fill="none" stroke="#fff" strokeWidth=".52916664" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="2.11666669 .52916668"/>
</svg>
);
export default PersistentVolumeClaimSvg;
-21
View File
@@ -1,21 +0,0 @@
import React from 'react';
const PersistentVolumeSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.93"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.93" fontSize="2.82" fontFamily="Arial" textAnchor="middle">pv</tspan>
</text>
<g>
<path d="M4.39 6.74c0 .62 2.07 1.12 4.63 1.12 2.55 0 4.63-.5 4.63-1.12v3.04c0 .62-2.08 1.12-4.63 1.12-2.56 0-4.63-.5-4.63-1.12z" fill="#fff" fillRule="evenodd"/>
<path d="M4.39 6.74c0-.62 2.07-1.13 4.63-1.13 2.55 0 4.63.5 4.63 1.13 0 .62-2.08 1.12-4.63 1.12-2.56 0-4.63-.5-4.63-1.12z" fill="#fff" fillRule="evenodd"/>
<path d="M13.65 6.74c0 .62-2.08 1.12-4.63 1.12-2.56 0-4.63-.5-4.63-1.12 0-.62 2.07-1.13 4.63-1.13 2.55 0 4.63.5 4.63 1.13v3.04c0 .62-2.08 1.12-4.63 1.12-2.56 0-4.63-.5-4.63-1.12V6.74" fill="none" stroke="#326ce5" strokeWidth=".26" strokeLinejoin="round" strokeMiterlimit="10"/>
</g>
</svg>
);
export default PersistentVolumeSvg;
-30
View File
@@ -1,30 +0,0 @@
import React from 'react';
const PodSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path
d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0
.06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13
0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"
/>
<path
color="#000"
fontWeight="400"
fontFamily="Sans"
fill="#fff"
d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34
5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2
1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14
1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1
.61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
/>
<text y="16.81" x="10.02" fontWeight="400" fontSize="10.58" fontFamily="Sans" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan y="16.81" x="10.02" fontSize="2.82" fontFamily="Arial" textAnchor="middle">pod</tspan>
</text>
<g fill="#fff">
<path d="M5.4 5.86l3.62-1.05 3.62 1.05-3.62 1.05zM5.4 6.26v3.86l3.37 1.87.02-4.72zM12.64 6.26v3.86l-3.38 1.87-.01-4.72z"/>
</g>
</svg>
);
export default PodSvg;
-19
View File
@@ -1,19 +0,0 @@
import React from 'react';
const ReplicaSetSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="9.9730864" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="9.9730864" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">rs</tspan>
</text>
<g>
<path d="M7.29396369 4.3782274h6.52499V8.961562h-6.52499z" fillRule="evenodd" stroke="#fff" strokeWidth=".52899998" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58700001 1.58700001" strokeDashoffset="3.66597009"/>
<path d="M5.75521349 5.7895384h6.5249902v4.5833346h-6.5249902z" fillRule="evenodd" stroke="#fff" strokeWidth=".52914584" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58743756 1.58743756" strokeDashoffset="3.87863898"/>
<path d="M4.21646349 7.2008504h6.5250002v4.5833346h-6.5250002z" fill="#fff" fillRule="evenodd"/>
<path d="M4.21646349 7.2008504h6.5250002v4.5833346h-6.5250002z" fill="none" stroke="#fff" strokeWidth=".52916664" strokeLinejoin="round" strokeMiterlimit="10"/>
</g>
</svg>
);
export default ReplicaSetSvg;
-50
View File
@@ -1,50 +0,0 @@
import React from 'react';
import ClusterRoleBindingSvg from './clusterRoleBindingSvg';
import ClusterRoleSvg from './clusterRoleSvg';
import ConfigMapSvg from './configMapSvg';
import DaemonSetSvg from './daemonSetSvg';
import DeploymentSvg from './deploymentSvg';
import IngressSvg from './ingressSvg';
import LogoSvg from './logoSvg';
import NamespaceSvg from './namespaceSvg';
import NodeSvg from './nodeSvg';
import PersistentVolumeClaimSvg from './persistentVolumeClaimSvg';
import PersistentVolumesSvg from './persistentVolumeSvg';
import PodSvg from './podSvg';
import ReplicaSetSvg from './replicaSetSvg';
import RoleBindingSvg from './roleBindingSvg';
import RoleSvg from './roleSvg';
import SecretSvg from './secretSvg';
import ServiceAccountSvg from './serviceAccountSvg';
import ServiceSvg from './serviceSvg';
import StatefulSetSvg from './statefulSetSvg';
import StorageClassesSvg from './storageClassSvg';
import UserSvg from './userSvg';
const ResourceSvg = (props) => {
switch (props.resource) {
case 'ClusterRole': return <ClusterRoleSvg {...props} />;
case 'ClusterRoleBinding': return <ClusterRoleBindingSvg {...props} />;
case 'ConfigMap': return <ConfigMapSvg {...props} />;
case 'DaemonSet': return <DaemonSetSvg {...props} />;
case 'Deployment': return <DeploymentSvg {...props} />;
case 'Ingress': return <IngressSvg {...props} />;
case 'Namespace': return <NamespaceSvg {...props} />;
case 'Node': return <NodeSvg {...props} />;
case 'PersistentVolume': return <PersistentVolumesSvg {...props} />;
case 'PersistentVolumeClaim': return <PersistentVolumeClaimSvg {...props} />;
case 'Pod': return <PodSvg {...props} />;
case 'ReplicaSet': return <ReplicaSetSvg {...props} />;
case 'Role': return <RoleSvg {...props} />;
case 'RoleBinding': return <RoleBindingSvg {...props} />;
case 'Secret': return <SecretSvg {...props} />;
case 'Service': return <ServiceSvg {...props} />;
case 'ServiceAccount': return <ServiceAccountSvg {...props} />;
case 'StatefulSet': return <StatefulSetSvg {...props} />;
case 'StorageClass': return <StorageClassesSvg {...props} />;
case 'User': return <UserSvg {...props} />;
default: return <LogoSvg {...props} />;
}
};
export default ResourceSvg;
-15
View File
@@ -1,15 +0,0 @@
import React from 'react';
const RoleBindingSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.03533 17.50038" {...props}>
<path d="M8.95834.46317a1.13579 1.1265 0 0 0-.43526.11015L2.58354 3.41129a1.13579 1.1265 0 0 0-.61454.76419l-1.46533 6.3748a1.13579 1.1265 0 0 0 .1542.8637 1.13579 1.1265 0 0 0 .06458.08964l4.1111 5.11154a1.13579 1.1265 0 0 0 .88801.42387l6.59282-.00152a1.13579 1.1265 0 0 0 .888-.42311l4.1096-5.1123a1.13579 1.1265 0 0 0 .21953-.95333l-1.4676-6.37481a1.13579 1.1265 0 0 0-.61454-.76419L9.50907.57332a1.13579 1.1265 0 0 0-.55073-.11015z" />
<path d="M8.95515.00157a1.19902 1.1892 0 0 0-.45881.11698L2.2256 3.11377a1.19902 1.1892 0 0 0-.64872.80673l-1.5466 6.72955a1.19902 1.1892 0 0 0 .16255.91231 1.19902 1.1892 0 0 0 .06837.0942l4.33976 5.3964a1.19902 1.1892 0 0 0 .93738.44742l6.95972-.00152a1.19902 1.1892 0 0 0 .93738-.44667l4.33824-5.39716a1.19902 1.1892 0 0 0 .23169-1.00575l-1.54888-6.7303a1.19902 1.1892 0 0 0-.64872-.80597L9.53703.11779a1.19902 1.1892 0 0 0-.58188-.11622zm.00304.46185a1.13579 1.1265 0 0 1 .55073.11015l5.9403 2.83645a1.13579 1.1265 0 0 1 .61454.7642l1.4676 6.3748a1.13579 1.1265 0 0 1-.21953.95333l-4.1096 5.1123a1.13579 1.1265 0 0 1-.888.42312l-6.59282.00152a1.13579 1.1265 0 0 1-.888-.42387L.7223 11.50388a1.13579 1.1265 0 0 1-.06457-.08964 1.13579 1.1265 0 0 1-.1542-.8637l1.46532-6.3748a1.13579 1.1265 0 0 1 .61454-.76419L8.52293.57358a1.13579 1.1265 0 0 1 .43526-.11015z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.91761" x="9.97446" fontWeight="400" fontSize="10.58333" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458" transform="translate(-.99263 -1.17418)">
<tspan y="16.91761" x="9.97446" fontSize="2.82222" fontFamily="Arial" textAnchor="middle">rb</tspan>
</text>
<path fill="none" stroke="#fff" strokeWidth=".4" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray=".8 .4" strokeDashoffset="4" d="M4.05273 3.75263h9.92986v8.65717H4.05273z"/>
<path d="M5.8895 8.08121c0-.66039.53682-1.1972 1.1972-1.1972h1.54477v-.73376H7.0867c-1.0659 0-1.93095.86507-1.93095 1.93096s.86506 1.93096 1.93095 1.93096h1.54477V9.2784H7.0867c-.66038 0-1.1972-.5368-1.1972-1.19719zm1.5834.3862h3.08952v-.77239H7.4729zm3.47572-2.31716H9.40385v.73377h1.54477c.66038 0 1.19718.5368 1.19718 1.1972 0 .66038-.5368 1.19718-1.19718 1.19718H9.40385v.73377h1.54477c1.0659 0 1.93095-.86507 1.93095-1.93096s-.86506-1.93096-1.93095-1.93096zM7.50288 3.752v-.19403H8.27899v.38805H7.50288V3.752zM8.70232 3.752v-.19403H9.47843v.38805H8.70232V3.752zM9.90177 3.752v-.19403H10.67788v.38805H9.90177V3.752zM11.10121 3.752v-.19403H11.87732v.38805H11.10121V3.752zM12.30065 3.752v-.19403h.77612v.38805h-.77612V3.752z" fill="#fff"/>
</svg>
);
export default RoleBindingSvg;
-22
View File
@@ -1,22 +0,0 @@
import React from 'react';
const RoleSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.98"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.98" fontSize="2.82" fontFamily="Arial" textAnchor="middle">role</tspan>
</text>
<g transform="translate(-.86 -1.74)">
<ellipse ry=".5" rx=".51" cy="9.95" cx="9.93" fill="#fff"/>
<path d="M9.99 5.88l-3.1 1.37V9.3c0 1.9 1.32 3.68 3.1 4.11a4.27 4.27 0 0 0 3.1-4.1V7.24zm1.64 5.51H8.34V8.63h.48v-.3a1.18 1.18 0 1 1 2.38 0v.3h.43z" fill="#fff"/>
<path d="M9.99 7.59c-.4 0-.72.32-.72.7v.3h1.43v-.3c0-.39-.32-.7-.71-.7z" fill="#fff"/>
<path fill="none" stroke="#fff" strokeWidth=".4" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray=".8 .4" strokeDashoffset="4" d="M4.92 5.46h9.93v8.66H4.92z"/>
</g>
</svg>
);
export default RoleSvg;
-9
View File
@@ -1,9 +0,0 @@
import React from 'react';
const ScaleSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M149.996 0C67.157 0 .001 67.161.001 149.997S67.157 300 149.996 300s150.003-67.163 150.003-150.003S232.838 0 149.996 0zm84.756 201.789l-81.296 40.291c-1.089.539-2.272.812-3.455.812-1.183 0-2.368-.27-3.455-.809L65.25 201.792c-3.851-1.909-5.426-6.577-3.517-10.429 1.906-3.846 6.58-5.426 10.426-3.517l77.844 38.58 77.841-38.577c3.844-1.911 8.517-.335 10.426 3.514 1.908 3.848.333 8.517-3.518 10.426zm0-29.609l-81.296 40.291c-1.089.539-2.272.812-3.455.812-1.183 0-2.368-.27-3.455-.809L65.25 172.183c-3.851-1.909-5.426-6.577-3.517-10.429 1.906-3.849 6.58-5.421 10.426-3.517l77.844 38.58 77.841-38.577c3.844-1.917 8.517-.335 10.426 3.514 1.908 3.849.333 8.517-3.518 10.426zm0-29.608l-81.296 40.291c-1.089.539-2.272.812-3.455.812-1.183 0-2.368-.27-3.455-.809L65.25 142.572c-3.851-1.909-5.426-6.577-3.517-10.426 1.906-3.849 6.58-5.426 10.426-3.517l77.844 38.58 77.841-38.58c3.844-1.906 8.517-.335 10.426 3.517 1.908 3.849.333 8.517-3.518 10.426zm0-31.066l-81.296 40.289c-1.089.539-2.272.809-3.455.809-1.183 0-2.368-.27-3.455-.809L65.25 111.506c-2.648-1.312-4.326-4.015-4.326-6.972 0-2.957 1.675-5.659 4.326-6.972l81.299-40.294c2.176-1.079 4.733-1.079 6.909 0l81.296 40.294c2.648 1.312 4.326 4.015 4.326 6.972 0 2.957-1.677 5.657-4.328 6.972z"/>
</svg>
);
export default ScaleSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const SearchSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" {...props}>
<path d="M139.415 96.195c-22.673 0-41.056 18.389-41.056 41.062 0 22.676 18.383 41.059 41.056 41.059 7.446 0 14.41-2.01 20.43-5.478 2.625-1.511 5.06-3.308 7.275-5.342.08-.073.163-.145.241-.218.705-.659 1.393-1.343 2.052-2.049.036-.039.07-.078.106-.117 2.754-2.977 5.073-6.367 6.86-10.068 2.596-5.387 4.095-11.404 4.095-17.787 0-22.673-18.381-41.062-41.059-41.062zm19.841 50.778h-39.684c-4.298 0-7.781-3.483-7.781-7.781s3.483-7.781 7.781-7.781h39.684c4.298 0 7.781 3.483 7.781 7.781s-3.483 7.781-7.781 7.781z"/>
<path d="M149.995 0C67.156 0 0 67.158 0 149.995s67.156 150 149.995 150 150-67.163 150-150S232.834 0 149.995 0zm75.442 221.254c-2.371 2.376-5.48 3.561-8.59 3.561-3.11 0-6.217-1.185-8.593-3.561l-34.145-34.147c-9.837 6.863-21.791 10.896-34.697 10.896-33.548 0-60.742-27.196-60.742-60.744s27.194-60.742 60.742-60.742 60.744 27.194 60.744 60.742c0 11.855-3.408 22.909-9.28 32.259l34.56 34.56c4.747 4.739 4.747 12.434.001 17.176z"/>
</svg>
);
export default SearchSvg;
-22
View File
@@ -1,22 +0,0 @@
import React from 'react';
const SecretSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.882332" x="9.976531" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.882332" x="9.976531" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">secret</tspan>
</text>
<g transform="translate(-.93551717 -1.174181)">
<path d="M10.414299 8.0912253h3.708331" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M8.2976282 5.9745582H14.12263" fill="none" stroke="#fff" strokeWidth=".79400003" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M5.7837382 5.9745582h1.45834" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M7.7183782 8.4321603c0-1.1667021 1.0110897-2.1125011 2.2583305-2.1125011 1.2472403 0 2.2583303.945799 2.2583303 2.1125011h-1.05624c0-.583351-.5382-1.0562501-1.2020903-1.0562501-.6638904 0-1.2020808.4728991-1.2020808 1.0562501z" fill="#fff" fillRule="evenodd" stroke="#326ce5" strokeWidth=".26458332" strokeLinecap="square" strokeMiterlimit="10"/>
<path d="M10.414299 10.207893h3.708331M8.2976282 12.32456H14.12263M5.7837382 12.32456h1.45834" fill="none" stroke="#fff" strokeWidth=".79374999" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M7.1622182 8.3691063h5.6166608V12.02744H7.1622182z" fill="#fff" fillRule="evenodd" stroke="#326ce5" strokeWidth=".26458332" strokeLinecap="square" strokeMiterlimit="10"/>
<circle r=".55515254" cy="10.198272" cx="9.9705448"/>
</g>
</svg>
);
export default SecretSvg;
-14
View File
@@ -1,14 +0,0 @@
import React from 'react';
const ServiceAccountSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.03533 17.50038" {...props}>
<path d="M8.95834.46317a1.13579 1.1265 0 0 0-.43526.11015L2.58354 3.41129a1.13579 1.1265 0 0 0-.61454.76419l-1.46533 6.3748a1.13579 1.1265 0 0 0 .1542.8637 1.13579 1.1265 0 0 0 .06458.08964l4.1111 5.11154a1.13579 1.1265 0 0 0 .88801.42387l6.59282-.00152a1.13579 1.1265 0 0 0 .888-.42311l4.1096-5.1123a1.13579 1.1265 0 0 0 .21953-.95333l-1.4676-6.37481a1.13579 1.1265 0 0 0-.61454-.76419L9.50907.57332a1.13579 1.1265 0 0 0-.55073-.11015z"/>
<path d="M8.95515.00157a1.19902 1.1892 0 0 0-.45881.11698L2.2256 3.11377a1.19902 1.1892 0 0 0-.64872.80673l-1.5466 6.72955a1.19902 1.1892 0 0 0 .16255.91231 1.19902 1.1892 0 0 0 .06837.0942l4.33976 5.3964a1.19902 1.1892 0 0 0 .93738.44742l6.95972-.00152a1.19902 1.1892 0 0 0 .93738-.44667l4.33824-5.39716a1.19902 1.1892 0 0 0 .23169-1.00575l-1.54888-6.7303a1.19902 1.1892 0 0 0-.64872-.80597L9.53703.11779a1.19902 1.1892 0 0 0-.58188-.11622zm.00304.46185a1.13579 1.1265 0 0 1 .55073.11015l5.9403 2.83645a1.13579 1.1265 0 0 1 .61454.7642l1.4676 6.3748a1.13579 1.1265 0 0 1-.21953.95333l-4.1096 5.1123a1.13579 1.1265 0 0 1-.888.42312l-6.59282.00152a1.13579 1.1265 0 0 1-.888-.42387L.7223 11.50388a1.13579 1.1265 0 0 1-.06457-.08964 1.13579 1.1265 0 0 1-.1542-.8637l1.46532-6.3748a1.13579 1.1265 0 0 1 .61454-.76419L8.52293.57358a1.13579 1.1265 0 0 1 .43526-.11015z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81178" x="10.02476" fontWeight="400" fontSize="10.58333" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458" transform="translate(-.99263 -1.17418)">
<tspan y="16.81178" x="10.02476" fontSize="2.82222" fontFamily="Arial" textAnchor="middle">sa</tspan>
</text>
<path d="M9.01847 3.21212l-4.0416 1.7961v2.69493c0 2.49125 1.72496 4.82244 4.0416 5.38826 2.31665-.56582 4.03999-2.89701 4.03999-5.38826V5.00821zm0 1.9028c.52218 0 .99424.31524 1.19309.79861.20046.48338.09053 1.0395-.27968 1.40971-.37021.3686-.92634.48014-1.40971.27968-.48176-.20046-.797-.6709-.797-1.1947 0-.71455.57875-1.2933 1.2933-1.2933zm2.42335 5.34784c0 .03232-.0097.06305-.0275.09053-.02908.04363-.05817.08892-.09053.13094-.57067.7857-1.37899 1.36606-2.30533 1.65383-.92795-.28777-1.73627-.86814-2.30694-1.65383-.03232-.04204-.06143-.0873-.09053-.13094-.01778-.0275-.0275-.05817-.0275-.09053v-.7178c0-.99099 1.61664-1.49053 2.42496-1.49053.80832 0 2.42335.49954 2.42335 1.49054z" fill="#fff"/>
</svg>
);
export default ServiceAccountSvg;
-19
View File
@@ -1,19 +0,0 @@
import React from 'react';
const ServiceSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.95834241.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.58353674 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.50367255 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5090737.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z"/>
<path d="M8.95515363.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.22560173 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4564882 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.53702972.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.72229582 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.52292583.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="9.9799767" fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan y="16.811775" x="9.9799767" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">svc</tspan>
</text>
<g>
<path d="M3.59475123 10.086645h2.9083311v2.041667h-2.9083311zM7.56350233 10.086645h2.9083303v2.041667h-2.9083303zM11.53225263 10.086645h2.90833v2.041667h-2.90833zM6.71350233 4.0341111h4.6083303v2.041667h-4.6083303z" fill="#fff" fillRule="evenodd"/>
<path d="M9.01766213 6.0757791v2.005449h-3.966671v2.0028859" fill="none" stroke="#fff" strokeWidth=".52916664" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M9.01766213 6.0757791v2.005449h3.9666705v2.0028859" fill="none" stroke="#fff" strokeWidth=".52899998" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M9.00931543 6.0770441v2.005449h.0167v2.0028859" fill="none" stroke="#fff" strokeWidth=".52916664" strokeLinejoin="round" strokeMiterlimit="10"/>
</g>
</svg>
);
export default ServiceSvg;
-25
View File
@@ -1,25 +0,0 @@
import React from 'react';
const StatefulSetSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.035334 17.500378" {...props}>
<path d="M8.99362041.46317128a1.13578782 1.12649307 0 0 0-.43526729.11014617L2.61881474 3.41129071a1.13578782 1.12649307 0 0 0-.61453947.76418673L.53895055 10.5502822a1.13578782 1.12649307 0 0 0 .15420523.8636987 1.13578782 1.12649307 0 0 0 .06456722.08963497l4.11111115 5.11154276a1.13578782 1.12649307 0 0 0 .8880063.42387233l6.5928196-.00152234a1.13578782 1.12649307 0 0 0 .8880061-.42311319l4.10959317-5.11229377a1.13578782 1.12649307 0 0 0 .219532-.95333468l-1.46760216-6.37480883a1.13578782 1.12649307 0 0 0-.61453999-.76418663L9.5443517.57331745a1.13578782 1.12649307 0 0 0-.55073128-.11014617z" />
<path d="M8.99043163.00156985a1.19902036 1.18920801 0 0 0-.45881585.11698298L2.26087973 3.11376929a1.19902036 1.18920801 0 0 0-.64872294.8067259l-1.54660412 6.7295526a1.19902036 1.18920801 0 0 0 .1625598.9123139 1.19902036 1.18920801 0 0 0 .0683629.09419182l4.33975948 5.39640273a1.19902036 1.18920801 0 0 0 .93738165.4474218l6.95971983-.00152233a1.19902036 1.18920801 0 0 0 .93738246-.44666266l4.3382398-5.39716289a1.19902036 1.18920801 0 0 0 .2316869-1.0057476L16.4917662 3.9189759a1.19902036 1.18920801 0 0 0-.64872234-.80596625L9.57230772.11779318a1.19902036 1.18920801 0 0 0-.58187609-.11622333zm.00303452.46185444a1.13578782 1.12649307 0 0 1 .55073108.11014617l5.9402975 2.83645407a1.13578782 1.12649307 0 0 1 .61454376.76418674l1.46760303 6.37480537a1.13578782 1.12649307 0 0 1-.2195329.95333367l-4.10959207 5.1123029a1.13578782 1.12649307 0 0 1-.8880062.4231132l-6.59281909.00152233a1.13578782 1.12649307 0 0 1-.8880063-.4238703L.75757382 11.5038767a1.13578782 1.12649307 0 0 1-.06456722-.08963497 1.13578782 1.12649307 0 0 1-.15420422-.8636987l1.4653237-6.37480547a1.13578782 1.12649307 0 0 1 .61453947-.76418663L8.55820383.57357757a1.13578782 1.12649307 0 0 1 .4352674-.11014618z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.811775" x="10.056596"
fontWeight="400" fontSize="10.58333302" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26458332" transform="translate(-.99262638 -1.174181)">
<tspan
y="16.811775" x="10.056596" fontSize="2.82222223" fontFamily="Arial" textAnchor="middle">sts</tspan>
</text>
<g>
<path d="M7.32918454 3.9548946h6.5250067v4.583335h-6.5250067z" fill="none" stroke="#fff" strokeWidth=".52914584" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58743761 1.58743761" strokeDashoffset="3.66698074"/>
<path d="M5.79043614 5.3662066h6.5250071V9.949542h-6.5250071z" fillRule="evenodd" stroke="#fff" strokeWidth=".52914584" strokeLinecap="square" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.58743761 1.58743761" strokeDashoffset="3.87863898"/>
<path d="M4.25170904 6.7775174h6.5249912v4.5833346h-6.5249912z" fill="#fff" fillRule="evenodd"/>
<path d="M4.25170904 6.7775174h6.5249912v4.5833346h-6.5249912z" fill="none" stroke="#fff" strokeWidth=".5291667" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M4.78487104 8.0518672c0-.4294054 1.2218881-.7775054 2.7291615-.7775054 1.5072743 0 2.7291787.3481 2.7291787.7775054s-1.2219044.7775068-2.7291787.7775068c-1.5072734 0-2.7291615-.3481014-2.7291615-.7775068z" fill="#fff" fillRule="evenodd"/>
<path d="M10.24321824 8.0518672c0 .4294054-1.2219064.7775068-2.7291777.7775068-1.5072734 0-2.7291614-.3481014-2.7291614-.7775068 0-.4294054 1.221888-.7775054 2.7291614-.7775054 1.5072733 0 2.7291777.3481 2.7291777.7775054V10.15519c0 .429405-1.2219064.777506-2.7291777.777506-1.5072734 0-2.7291614-.348101-2.7291614-.777506V8.0518672" fill="none"/>
<path d="M10.24321824 8.0518672c0 .4294054-1.2219064.7775068-2.7291777.7775068-1.5072734 0-2.7291614-.3481014-2.7291614-.7775068 0-.4294054 1.221888-.7775054 2.7291614-.7775054 1.5072733 0 2.7291777.3481 2.7291777.7775054V10.15519c0 .429405-1.2219064.777506-2.7291777.777506-1.5072734 0-2.7291614-.348101-2.7291614-.777506V8.0518672" fill="none" stroke="#326ce5" strokeWidth=".5291667" strokeLinejoin="round" strokeMiterlimit="10"/>
</g>
</svg>
);
export default StatefulSetSvg;
-26
View File
@@ -1,26 +0,0 @@
import React from 'react';
const StorageClassSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.04 17.5" {...props}>
<path d="M8.96.46a1.14 1.13 0 0 0-.44.11L2.58 3.41a1.14 1.13 0 0 0-.61.77L.5 10.55a1.14 1.13 0 0 0 .16.86 1.14 1.13 0 0 0 .06.1l4.11 5.1a1.14 1.13 0 0 0 .9.43h6.58a1.14 1.13 0 0 0 .9-.43l4.1-5.1a1.14 1.13 0 0 0 .22-.96l-1.47-6.38a1.14 1.13 0 0 0-.61-.76L9.5.57a1.14 1.13 0 0 0-.55-.1z"/>
<path d="M8.96 0a1.2 1.19 0 0 0-.46.12l-6.27 3a1.2 1.19 0 0 0-.65.8L.03 10.65a1.2 1.19 0 0 0 .16.91 1.2 1.19 0 0 0 .07.1l4.34 5.4a1.2 1.19 0 0 0 .94.44h6.96a1.2 1.19 0 0 0 .94-.45l4.33-5.4a1.2 1.19 0 0 0 .24-1l-1.55-6.73a1.2 1.19 0 0 0-.65-.8l-6.27-3A1.2 1.19 0 0 0 8.96 0zm0 .46a1.14 1.13 0 0 1 .55.11l5.94 2.84a1.14 1.13 0 0 1 .61.76l1.47 6.38a1.14 1.13 0 0 1-.22.95l-4.1 5.11a1.14 1.13 0 0 1-.9.43H5.72a1.14 1.13 0 0 1-.89-.42L.73 11.5a1.14 1.13 0 0 1-.07-.09 1.14 1.13 0 0 1-.16-.86l1.47-6.37a1.14 1.13 0 0 1 .61-.77L8.52.57a1.14 1.13 0 0 1 .44-.1z"
color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.81" x="9.98"
fontWeight="400" fontSize="10.58" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".26" transform="translate(-1 -1.17)">
<tspan
y="16.81" x="9.98" fontSize="2.82" fontFamily="Arial" textAnchor="middle">sc</tspan>
</text>
<path d="M4.43 9.35c0 .38 2.1.68 4.7.68 2.59 0 4.7-.3 4.7-.68v1.85c0 .37-2.11.68-4.7.68-2.6 0-4.7-.3-4.7-.68z" fillRule="evenodd"/>
<path d="M4.43 9.35c0-.37 2.1-.68 4.7-.68 2.59 0 4.7.3 4.7.68 0 .38-2.11.68-4.7.68-2.6 0-4.7-.3-4.7-.68z" fillRule="evenodd"/>
<path d="M4.43 7.04c0 .38 2.1.68 4.7.68 2.59 0 4.7-.3 4.7-.68V8.9c0 .37-2.11.68-4.7.68-2.6 0-4.7-.3-4.7-.68z" fill="#fff" fillRule="evenodd" stroke="#eee" strokeWidth=".21" strokeLinecap="square" strokeMiterlimit="10"/>
<path d="M4.43 7.04c0-.37 2.1-.68 4.7-.68 2.59 0 4.7.3 4.7.68 0 .38-2.11.68-4.7.68-2.6 0-4.7-.3-4.7-.68zM4.43 4.49c0-.38 2.1-.68 4.7-.68 2.59 0 4.7.3 4.7.68 0 .37-2.11.68-4.7.68-2.6 0-4.7-.3-4.7-.68z" fillRule="evenodd"/>
<g>
<path d="M13.72 9.7c0 .38-2.1.69-4.7.69s-4.7-.3-4.7-.68c0-.38 2.1-.69 4.7-.69s4.7.31 4.7.69v1.84c0 .38-2.1.68-4.7.68s-4.7-.3-4.7-.68V9.71" fill="none" stroke="#fff" strokeWidth=".41" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.66 .41"/>
<path d="M13.72 7.04c0 .38-2.1.68-4.7.68s-4.7-.3-4.7-.68c0-.37 2.1-.68 4.7-.68s4.7.3 4.7.68V8.9c0 .37-2.1.68-4.7.68s-4.7-.3-4.7-.68V7.04" fill="none" stroke="#fff" strokeWidth=".41" strokeLinejoin="round" strokeMiterlimit="10"/>
<path d="M4.32 4.49c0 .37 2.1.68 4.7.68s4.7-.3 4.7-.68v1.84c0 .38-2.1.68-4.7.68s-4.7-.3-4.7-.68z" fillRule="evenodd"/>
<path d="M13.72 4.49c0 .37-2.1.68-4.7.68s-4.7-.3-4.7-.68c0-.38 2.1-.68 4.7-.68s4.7.3 4.7.68v1.84c0 .38-2.1.68-4.7.68s-4.7-.3-4.7-.68V4.5" fill="none" stroke="#fff" strokeWidth=".42" strokeLinejoin="round" strokeMiterlimit="10" strokeDasharray="1.66 .42"/>
</g>
</svg>
);
export default StorageClassSvg;
-10
View File
@@ -1,10 +0,0 @@
import React from 'react';
const UnlockSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.997 299.997" {...props}>
<path d="M134.437 161.482c-8.613 0-15.598 6.982-15.598 15.598 0 5.778 3.149 10.807 7.817 13.502v17.346h15.562v-17.346c4.668-2.695 7.817-7.726 7.817-13.502 0-8.616-6.985-15.598-15.598-15.598z"/>
<path d="M149.996 0C67.157 0 .001 67.158.001 149.997c0 82.837 67.156 150 149.995 150s150-67.163 150-150C299.996 67.156 232.835 0 149.996 0zm102.947 134.436h-25.936v-27.915c0-13.108-10.665-23.775-23.773-23.775-13.111 0-23.775 10.665-23.775 23.775v25.321h1.063c9.734 0 17.626 7.892 17.626 17.629v56.921c0 9.736-7.892 17.629-17.626 17.629H88.349c-9.734 0-17.626-7.892-17.626-17.629v-56.924c0-9.736 7.892-17.629 17.626-17.629h65.174V106.52c0-27.409 22.302-49.711 49.711-49.711s49.709 22.3 49.709 49.711v27.916z"/>
</svg>
);
export default UnlockSvg;
-14
View File
@@ -1,14 +0,0 @@
import React from 'react';
const UserSvg = props => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.0353 17.5004" {...props}>
<path d="M8.9583.4632a1.1358 1.1265 0 0 0-.4352.1101l-5.9396 2.838a1.1358 1.1265 0 0 0-.6145.7642L.5037 10.5503a1.1358 1.1265 0 0 0 .1542.8637 1.1358 1.1265 0 0 0 .0645.0896l4.1112 5.1116a1.1358 1.1265 0 0 0 .888.4238l6.5928-.0015a1.1358 1.1265 0 0 0 .888-.4231l4.1096-5.1123a1.1358 1.1265 0 0 0 .2195-.9533L16.064 4.174a1.1358 1.1265 0 0 0-.6145-.7642L9.509.5733a1.1358 1.1265 0 0 0-.5508-.1101z"/>
<path d="M8.9552.0016a1.199 1.1892 0 0 0-.4589.117L2.2256 3.1138a1.199 1.1892 0 0 0-.6487.8067L.0303 10.65a1.199 1.1892 0 0 0 .1625.9124 1.199 1.1892 0 0 0 .0684.0942L4.601 17.053a1.199 1.1892 0 0 0 .9373.4474l6.9598-.0015a1.199 1.1892 0 0 0 .9373-.4467l4.3383-5.3972a1.199 1.1892 0 0 0 .2317-1.0057l-1.549-6.7303a1.199 1.1892 0 0 0-.6486-.806L9.537.1178a1.199 1.1892 0 0 0-.5818-.1162zm.003.4618a1.1358 1.1265 0 0 1 .5507.1102L15.4492 3.41a1.1358 1.1265 0 0 1 .6146.7642l1.4676 6.3748a1.1358 1.1265 0 0 1-.2196.9534l-4.1096 5.1123a1.1358 1.1265 0 0 1-.888.423l-6.5928.0016a1.1358 1.1265 0 0 1-.888-.4239L.7223 11.504a1.1358 1.1265 0 0 1-.0646-.0897 1.1358 1.1265 0 0 1-.1542-.8637l1.4653-6.3748a1.1358 1.1265 0 0 1 .6146-.7641L8.5229.5736a1.1358 1.1265 0 0 1 .4353-.1102z" color="#000" fontWeight="400" fontFamily="Sans" overflow="visible" fill="#fff"/>
<text y="16.8823" x="9.8994" fontWeight="400" fontSize="10.5833" fontFamily="Sans" letterSpacing="0" wordSpacing="0" fill="#fff" strokeWidth=".2646" transform="translate(-.9926 -1.1742)">
<tspan y="16.8823" x="9.8994" fontSize="2.8222" fontFamily="Arial" textAnchor="middle">user</tspan>
</text>
<path d="M5.1752 3.6173a.8548.8548 0 0 0-.8568.8564v7.2853a.855.855 0 0 0 .8568.8567h7.6852a.8548.8548 0 0 0 .8565-.8567V4.4737a.8546.8546 0 0 0-.8565-.8564zM9.0178 5.039c.7298 0 1.3144.5891 1.3144 1.319 0 .7297-.5846 1.3186-1.3144 1.3186a1.317 1.317 0 0 1-1.319-1.3187c0-.7298.5892-1.319 1.319-1.319zm0 3.517c1.0244 0 3.0774.5143 3.0774 1.5386v1.0991h-6.155v-1.099c0-1.0244 2.0533-1.5386 3.0776-1.5386z" fill="#fff"/>
</svg>
);
export default UserSvg;
-38
View File
@@ -1,38 +0,0 @@
import {Component} from 'react';
import log from '../utils/log';
export default class Base extends Component {
async componentWillUnmount() {
await this.clearDisposers();
}
async registerApi(apis) {
if (!this.apis) this.apis = {};
for (const [name, api] of Object.entries(apis)) {
await this.clearDisposer(name);
this.apis[name] = api;
}
}
async clearDisposers() {
const keys = Object.keys(this.apis || {});
for (const name of keys) {
this.clearDisposer(name);
}
}
async clearDisposer(name) {
if (!this.apis || !this.apis[name]) return;
const item = this.apis[name];
delete this.apis[name];
const handler = await item;
if (handler) {
handler();
} else {
log.warn('Found null handler when calling disposers');
}
}
}
-36
View File
@@ -1,36 +0,0 @@
import React from 'react';
import Base from './base';
import log from '../utils/log';
import {addUserNotification} from './notifier';
import './button.scss';
export default class Button extends Base {
async click() {
this.setState({working: true});
try {
await this.props.onClick();
} catch (err) {
log.error({err}, 'Error in button handler');
addUserNotification(err.message, true);
}
this.setState({working: false});
}
render() {
const {working} = this.state || {};
const {children, disabled, className, title} = this.props;
return (
<button
className={className}
title={title}
disabled={working || disabled}
onClick={() => this.click()}
>
{children}
</button>
);
}
}
-59
View File
@@ -1,59 +0,0 @@
@import '../scss/settings.scss';
.button, .button:visited {
border: none;
background: $color-accent;
color: $color-white;
cursor: pointer;
outline: none;
display: flex;
flex-direction: column;
align-items: center;
padding: 0.5rem;
margin: 0.5rem 1px;
min-width: 5rem;
}
.button_negative, .button_negative:visited {
@extend .button;
background: $color-error;
color: $color-white;
}
.button_clear, .button_clear:visited {
@extend .button;
background: none;
padding: 0;
margin: 0;
min-width: 3rem;
}
.button:disabled, .button_negative:disabled {
border: none;
background: $color-lightest;
color: $color-white;
pointer-events: none;
}
.button_clear:disabled {
@extend .button:disabled;
background: none;
color: $color-lightest;
> svg {
fill: $color-lightest;
}
}
.button_headerAction {
@extend .button_clear
}
.button_label {
color: $color-light;
font-size: $font-size-small;
text-transform: uppercase;
margin-top: 3px;
}
-51
View File
@@ -1,51 +0,0 @@
import _ from 'lodash';
import React from 'react';
import Donut from './donut';
export default function Chart(props) {
const {used = 0, usedSuffix, available = 0, availableSuffix, pending = 0, decimals = 1} = props;
const fixedUsed = _.round(used, decimals);
const fixedPending = _.round(pending, decimals);
const fixedAvailable = _.round(available, decimals);
const {percent, percent2} = getData(fixedUsed, fixedPending, fixedAvailable);
return (
<div className='charts_donut'>
<Donut percent={percent} percent2={percent2} />
<span className='chart_donutLabel'>
<div>
{Number.isFinite(fixedUsed) && (
<>
<span>{fixedUsed}</span>
{usedSuffix && (<span className='chart_innerLabel'>{usedSuffix}</span>)}
</>
)}
</div>
<div className='chart_innerLabel'>of</div>
<div>
{Number.isFinite(fixedAvailable) && (
<>
<span>{fixedAvailable}</span>
{availableSuffix && (<span className='chart_innerLabel'>{availableSuffix}</span>)}
</>
)}
</div>
</span>
</div>
);
}
function getData(used, pending, available) {
// If there's a negative amount remaining, show an all red chart
const remaining = available - used - pending;
if (remaining < 0) return {percent: 0, percent2: 1};
// If there's no data, show an all grey chart
if (!available) return {percent: 0, percent2: 0};
const percent = used / available;
const percent2 = pending / available;
return {percent, percent2};
}
-51
View File
@@ -1,51 +0,0 @@
import React from 'react';
import {Swipeable} from 'react-swipeable';
import Base from './base';
export default class ChartsContainer extends Base {
state = {
index: 0,
};
swipe(value) {
let {index} = this.state;
const {children} = this.props;
index += value;
index = Math.max(0, index);
index = Math.min(children.length - 1, index);
this.setState({index});
}
next() {
let {index} = this.state;
const {children} = this.props;
index++;
if (index >= children.length) index = 0;
this.setState({index});
}
render() {
const {children} = this.props;
const {index} = this.state;
return (
<div className='charts_container'>
<Swipeable
onSwipedLeft={() => this.swipe(1)}
onSwipedRight={() => this.swipe(-1)}
trackMouse={true}
preventDefaultTouchmoveEvent={true}
className={`charts chart_${index}`}
>
{children}
</Swipeable>
<div className='chart_dots' onClick={() => this.next()}>
{children.map((_, i) => (
<span key={i} className={i === index ? 'chart_dotSelected' : undefined}></span>
))}
</div>
</div>
);
}
}
-67
View File
@@ -1,67 +0,0 @@
import _ from 'lodash';
import React, {Fragment} from 'react';
import Field from './field';
const ContainersPanel = ({spec}) => (
<>
{spec && _.map(spec.containers, item => (
<Fragment key={item.name}>
<div className='contentPanel_header'>Container</div>
<div key={item.name} className='contentPanel'>
<Field name='Container'>{item.name}</Field>
<Field name='Image'>{item.image}</Field>
{item.args && (
<Field name='Args'>{item.args.join(' ')}</Field>
)}
{item.env && (
<Field name='Env'>
{item.env.map(x => (
<div key={x.name}>
{x.name}: {getVariableValue(x)}
</div>
))}
</Field>
)}
{item.resources && item.resources.requests && (
<>
<Field name='Cpu Request'>{item.resources.requests.cpu}</Field>
<Field name='Memory Request'>{item.resources.requests.memory}</Field>
</>
)}
{item.resources && item.resources.limits && (
<>
<Field name='Cpu Limit'>{item.resources.limits.cpu}</Field>
<Field name='Memory Limit'>{item.resources.limits.memory}</Field>
</>
)}
{item.ports && (
<Field name='Ports'>
{item.ports.map((x, i) => (
<div key={i}>
{[x.name, x.containerPort, x.hostPort, x.protocol].filter(y => !!y).join(' • ')}
</div>
))}
</Field>
)}
</div>
</Fragment>
))}
</>
);
function getVariableValue(item) {
if (item.value) return item.value;
if (!item.valueFrom) return null;
if (item.valueFrom.secretKeyRef) return item.valueFrom.secretKeyRef.key;
if (item.valueFrom.fieldRef) return item.valueFrom.fieldRef.fieldPath;
return null;
}
export default ContainersPanel;
-28
View File
@@ -1,28 +0,0 @@
import React from 'react';
import Base from './base';
import Button from './button';
import {addUserConfirmation} from './notifier';
import DeleteSvg from '../art/deleteSvg';
export default class DeleteButton extends Base {
render() {
return (
<Button title='Delete' className='button_headerAction' onClick={() => this.startDelete()}>
<DeleteSvg />
<span className='button_label'>Delete</span>
</Button>
);
}
startDelete() {
const {onDelete} = this.props;
const message = 'Are you sure you want to permanently delete this item?';
addUserConfirmation(message, async (result) => {
if (!result) return;
await onDelete();
window.history.back();
});
}
}
-45
View File
@@ -1,45 +0,0 @@
import './doc.scss';
import React from 'react';
import Base from './base';
import ArrowDownSvg from '../art/arrowDownSvg';
export default class Doc extends Base {
render() {
const {properties} = this.props;
const pairs = Object.entries(properties || {});
return (
<ul className='doc_group'>
{pairs.map(([name, value]) => (
<DocItem key={name} name={name} value={value} />
))}
</ul>
);
}
}
class DocItem extends Base {
toggle() {
const {expanded} = this.state || {};
this.setState({expanded: !expanded});
}
render() {
const {name, value} = this.props;
const {expanded} = this.state || {};
return (
<>
<li className='doc_item' key={name} onClick={() => this.toggle()}>
<ArrowDownSvg className={expanded ? 'doc_arrow doc_arrowExpanded' : 'doc_arrow'} />
<span>{name}</span>
<span className='doc_itemType'> {value.format || value.type}</span>
{expanded && <div className='doc_description'>{value.description}</div>}
</li>
{expanded && (
<Doc key={`${name}-properties`} properties={value.properties} />
)}
</>
);
}
}
-40
View File
@@ -1,40 +0,0 @@
@import '../scss/settings.scss';
ul.doc_group {
margin: 0;
padding-inline-start: 15px;
}
.doc_item {
margin: 5px;
list-style-type: none;
cursor: pointer;
}
.doc_itemType {
font-size: $font-size-small;
color: $color-dark;
}
.doc_description {
margin-left: 10px;
color: $color-dark;
font-size: 8pt;
cursor: default;
}
svg.doc_arrow {
width: 6px;
height: 6px;
cursor: pointer;
fill: $color-dark;
margin-right: 3px;
transform: rotate(-90deg);
transition-duration: $animation-length;
transition-property: transform;
}
svg.doc_arrowExpanded {
transform: rotate(0deg);
}

Some files were not shown because too many files have changed in this diff Show More