From c9cf3578f9698b2355c0ff97edf7d686785d5564 Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 13 Apr 2020 14:29:52 +0200 Subject: [PATCH 1/6] Display taints in node panel --- client/src/views/node.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/client/src/views/node.js b/client/src/views/node.js index d65f7c3..38fa135 100644 --- a/client/src/views/node.js +++ b/client/src/views/node.js @@ -75,6 +75,7 @@ export default class Node extends Base { + {getTaints(item)} )} @@ -118,6 +119,15 @@ export default class Node extends Base { } } +/** + * Render "taints" divs from the node spec + * + * @param spec spec from a node item + */ +function getTaints({ spec }) { + return _.map(spec.taints, ({key, effect}) =>
{key} {effect}
); +} + function getUptime({status}) { const ready = status.conditions.find(y => y.type === 'Ready'); if (!ready) return 'N/A'; From 4787043077b89947cbf16b1975fef5e75b0a3630 Mon Sep 17 00:00:00 2001 From: wizawu Date: Tue, 14 Apr 2020 23:08:45 +0800 Subject: [PATCH 2/6] Change font-family of `.editorModal_input` to monospace --- client/src/views/editorModal.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/views/editorModal.scss b/client/src/views/editorModal.scss index 276586f..647a133 100644 --- a/client/src/views/editorModal.scss +++ b/client/src/views/editorModal.scss @@ -16,6 +16,7 @@ margin: 0px; padding: 10px; flex: 1; + font-family: monospace; } .editorModal_docs { From c285b91264fd0e6b7a187f5ac48e36c7501b5056 Mon Sep 17 00:00:00 2001 From: Olivier Date: Thu, 30 Apr 2020 14:40:01 +0200 Subject: [PATCH 3/6] Sort by node ready status by default (unready first) --- client/src/components/nodesPanel.js | 2 +- client/src/views/nodes.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/src/components/nodesPanel.js b/client/src/components/nodesPanel.js index 722409e..86cb69b 100644 --- a/client/src/components/nodesPanel.js +++ b/client/src/components/nodesPanel.js @@ -96,7 +96,7 @@ export default class NodesPanel extends Base { * @param {*status* object with a status field (most likely the row from the TableBody)} * @returns the status text, as defined in https://kubernetes.io/docs/concepts/architecture/nodes/#condition */ -function getReadyStatus({status}) { +export function getReadyStatus({status}) { if (!status.conditions) return null; const ready = status.conditions.find(y => y.type === 'Ready'); return ready && ready.status; diff --git a/client/src/views/nodes.js b/client/src/views/nodes.js index c432b47..e658f7e 100644 --- a/client/src/views/nodes.js +++ b/client/src/views/nodes.js @@ -6,7 +6,7 @@ import {defaultSortInfo} from '../components/sorter'; import NodeStatusChart from '../components/nodeStatusChart'; import api from '../services/api'; import test from '../utils/filterHelper'; -import NodesPanel from '../components/nodesPanel'; +import NodesPanel, {getReadyStatus} from '../components/nodesPanel'; import NodeCpuChart from '../components/nodeCpuChart'; import NodeRamChart from '../components/nodeRamChart'; import getMetrics from '../utils/metricsHelpers'; @@ -14,7 +14,7 @@ import getMetrics from '../utils/metricsHelpers'; export default class Nodes extends Base { state = { filter: '', - sort: defaultSortInfo(this), + sort: defaultSortInfo(this, getReadyStatus, 'asc'), }; componentDidMount() { From 52174e8751af8a68debf71433b07428f9dd42ebe Mon Sep 17 00:00:00 2001 From: Olivier Date: Thu, 30 Apr 2020 17:10:15 +0200 Subject: [PATCH 4/6] Add utils/nodeHelpers.js to provide some Node related utility functions --- client/src/components/nodesPanel.js | 11 +---------- client/src/utils/nodeHelpers.js | 11 +++++++++++ client/src/views/nodes.js | 3 ++- 3 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 client/src/utils/nodeHelpers.js diff --git a/client/src/components/nodesPanel.js b/client/src/components/nodesPanel.js index 86cb69b..81f89e6 100644 --- a/client/src/components/nodesPanel.js +++ b/client/src/components/nodesPanel.js @@ -6,6 +6,7 @@ import LoadingEllipsis from './loadingEllipsis'; import {MetadataHeaders, MetadataColumns, TableBody, objectMap} from './listViewHelpers'; import {unparseCpu, unparseRam} from '../utils/unitHelpers'; import {getNodeResourceValue, getNodeResourcePercent, getNodeUsagePercent, getNodeUsage, getNodeResourcesAvailable} from '../utils/metricsHelpers'; +import getReadyStatus from '../utils/nodeHelpers'; export default class NodesPanel extends Base { constructor(props) { @@ -91,16 +92,6 @@ export default class NodesPanel extends Base { } } -/** - * - * @param {*status* object with a status field (most likely the row from the TableBody)} - * @returns the status text, as defined in https://kubernetes.io/docs/concepts/architecture/nodes/#condition - */ -export function getReadyStatus({status}) { - if (!status.conditions) return null; - const ready = status.conditions.find(y => y.type === 'Ready'); - return ready && ready.status; -} /** Simple mapping between ready statuses and an UTF-8 symbol character */ const statusesToUtf8 = { "True": "\u2713", "False": "\uD83D\uDEC7", "Unknown": "\u003F" } diff --git a/client/src/utils/nodeHelpers.js b/client/src/utils/nodeHelpers.js new file mode 100644 index 0000000..4f2eb4a --- /dev/null +++ b/client/src/utils/nodeHelpers.js @@ -0,0 +1,11 @@ +/** + * @param {*status* object with a status field (most likely the row from the TableBody)} + * @returns the status text, as defined in https://kubernetes.io/docs/concepts/architecture/nodes/#condition + */ +function getReadyStatus({status}) { + if (!status.conditions) return null; + const ready = status.conditions.find(y => y.type === 'Ready'); + return ready && ready.status; +} + +export default getReadyStatus; diff --git a/client/src/views/nodes.js b/client/src/views/nodes.js index e658f7e..a7413df 100644 --- a/client/src/views/nodes.js +++ b/client/src/views/nodes.js @@ -6,7 +6,8 @@ import {defaultSortInfo} from '../components/sorter'; import NodeStatusChart from '../components/nodeStatusChart'; import api from '../services/api'; import test from '../utils/filterHelper'; -import NodesPanel, {getReadyStatus} from '../components/nodesPanel'; +import NodesPanel from '../components/nodesPanel'; +import getReadyStatus from '../utils/nodeHelpers'; import NodeCpuChart from '../components/nodeCpuChart'; import NodeRamChart from '../components/nodeRamChart'; import getMetrics from '../utils/metricsHelpers'; From ee1537e8b965ff9969e9ae4600265535f9b38da8 Mon Sep 17 00:00:00 2001 From: Mya Pitzeruse Date: Tue, 5 May 2020 18:05:38 -0500 Subject: [PATCH 5/6] gh-83: add OSSMETADATA --- OSSMETADATA | 1 + 1 file changed, 1 insertion(+) create mode 100644 OSSMETADATA diff --git a/OSSMETADATA b/OSSMETADATA new file mode 100644 index 0000000..b96d4a4 --- /dev/null +++ b/OSSMETADATA @@ -0,0 +1 @@ +osslifecycle=active From b7650521d7ee004deb8f8d9eaa3a604e92533bad Mon Sep 17 00:00:00 2001 From: Mya Pitzeruse Date: Tue, 5 May 2020 18:07:56 -0500 Subject: [PATCH 6/6] gh-82: add CODE_OF_CONDUCT --- CODE_OF_CONDUCT.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..dcda7a1 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# 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