mirror of
https://github.com/skooner-k8s/skooner.git
synced 2026-08-24 04:16:18 +00:00
Merge branch 'master' into dev
This commit is contained in:
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
osslifecycle=active
|
||||
@@ -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
|
||||
*/
|
||||
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" }
|
||||
|
||||
@@ -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;
|
||||
@@ -16,6 +16,7 @@
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
flex: 1;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.editorModal_docs {
|
||||
|
||||
@@ -75,6 +75,7 @@ export default class Node extends Base {
|
||||
<Field name='Container Runtime' value={item.status.nodeInfo.containerRuntimeVersion} />
|
||||
<Field name='Kubelet' value={item.status.nodeInfo.kubeletVersion} />
|
||||
<Field name='Kube Proxy' value={item.status.nodeInfo.kubeProxyVersion} />
|
||||
<Field name='Taints'>{getTaints(item)}</Field>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -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}) => <div key={key}> <span>{key}</span> • <span title={key}> {effect} </span></div>);
|
||||
}
|
||||
|
||||
function getUptime({status}) {
|
||||
const ready = status.conditions.find(y => y.type === 'Ready');
|
||||
if (!ready) return 'N/A';
|
||||
|
||||
@@ -7,6 +7,7 @@ import NodeStatusChart from '../components/nodeStatusChart';
|
||||
import api from '../services/api';
|
||||
import test from '../utils/filterHelper';
|
||||
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';
|
||||
@@ -14,7 +15,7 @@ import getMetrics from '../utils/metricsHelpers';
|
||||
export default class Nodes extends Base {
|
||||
state = {
|
||||
filter: '',
|
||||
sort: defaultSortInfo(this),
|
||||
sort: defaultSortInfo(this, getReadyStatus, 'asc'),
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
|
||||
Reference in New Issue
Block a user