Skip to content

Commit

Permalink
First version of linter + tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ppalucki committed Jun 6, 2024
1 parent cdb10cd commit d75b013
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion deployment/pcm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
name: pcm
version: 0.1.0
appVersion: "202403"
appVersion: "202404"
description: A PCM Helm chart for Kubernetes
home: https://github.com/intel/pcm
maintainers:
Expand Down
2 changes: 2 additions & 0 deletions deployment/pcm/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
chart-lint-report.txt: values.yaml templates
docker run -ti --rm -w /pcm -v `realpath $(PWD)/../..`:/pcm quay.io/helmpack/chart-testing ct lint --charts deployment/pcm --validate-maintainers=false | tee chart-lint-report.txt
1 change: 0 additions & 1 deletion deployment/pcm/values-direct-privileged.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,3 @@ resctrlMount: false # with MSR resctrl mount is not needed
resctrlInsideMount: false
sysMount: false
pciMount: false
mcfgMount: false
26 changes: 13 additions & 13 deletions deployment/pcm/values.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
### -------------- Naming -------------------
# used in
# Used in:
# - common label: app.kubernetes.io/name otherwise "Chart name"
# - also in selectorLabels together with release.name
# defaults to "Chart.name"
nameOverride: ""
nameOverride: ""
# Used as daemonset name (usually based on truncated "name + release name")
fullnameOverride: ""

Expand All @@ -19,7 +19,7 @@ imagePullSecrets: {}
privileged: false

# Use new kernel 5.8+ PERFMON (least privileged) instead of generic SYS_ADMIN capability
# !Warning requires kernel 5.8+
# !Warning requires kernel 5.8+
# more info here: https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html#perf-events-access-control
cap_perfmon: true

Expand All @@ -40,13 +40,13 @@ probes: false
### -------------- Metrics: Uncore ------------
# Mounts section
# NOTE: only required for direct mode
# required for uncore metrics discovery and working only in baremetal, not available for VM
# required for uncore metrics discovery and working only in baremetal, not available for VM
sysMount: false # mounts host /sys into container /pcm/sys/
pciMount: false # mounts host /proc/bus/pci into container /pcm/proc/bus/pci/

# NOTE this is only required for direct unprivileged mode ?!?!?!
# TODO: to be removed!!!?!?!!?!? (already coverred sysMounts !!!!)
#mcfgMount: false # mounts hosts: /sys/firmware/acpi/tables/MCFG -> /pcm/sys/firmware/acpi/tables/MCFG
# TODO: to be removed!!!?!?!!?!? (already coverred sysMounts !!!!) yes or not
mcfgMount: false # mounts hosts: /sys/firmware/acpi/tables/MCFG -> /pcm/sys/firmware/acpi/tables/MCFG

### linux Perf (indirect) vs msr(direct)
# Lets try "indirect" as default
Expand All @@ -61,13 +61,13 @@ PCM_USE_RESCTRL: 1 # use Linux Perf instead of MSR access (more reli
# required for indirect RDT access, not available for VM only in baremetal
# do not mount by default RDT can be also accessed through direct MSR programming
resctrlMount: true # mount from external host
resctrlInsideMount: false # TODO: mount inside with extra call to mount, requires image with mount installed - doesn't require
resctrlInsideMount: false # TODO: mount inside with extra call to mount, requires image with mount installed - doesn't require

### -------------- Other (NMI handling and/or on VM/AWS)
PCM_IGNORE_ARCH_PERFMON: 0 # After VM is detected through CPUID (hypervisor flag) - check arch_perfmon flag to be also enabled - fail if not avaiable (0 - do check, 1 - disable check)
# 0: Disabling NMI watchdog since it consumes one hw-PMU counter, requires nmiWatchdogMount to be true
# 1: don't disable NMI watchdog (reducing the core metrics set) - prefferd for production usage!
# but even with 0 automatic AWS workround applies!
# but even with 0 automatic AWS workround applies!
PCM_KEEP_NMI_WATCHDOG: 0
# workaround: after VM is detected: "INFO: Reducing the number of programmable counters to 3 to workaround the fixed cycle counter virtualization issue on AWS.\n";)
# 1: disables workaround and tries to use four programable counters (without workaround on VM will pcm-sensor-server will hang)
Expand All @@ -79,7 +79,7 @@ nmiWatchdogMount: true

### -------------- Other (Debugging options for uncore pmu discovery)
PCM_NO_UNCORE_PMU_DISCOVERY: 0 # skip 1: this is not required for direct privileged access and with 0 ends with WARNING enumaration failed
PCM_PRINT_UNCORE_PMU_DISCOVERY: 1 # show: discovered pmu
PCM_PRINT_UNCORE_PMU_DISCOVERY: 1 # show: discovered pmu
PCM_PRINT_TOPOLOGY: 0 # show individual CPU topology for each core (plenty of lines)
PCM_NO_MAIN_EXCEPTION_HANDLER: 0 # show full call stack of error

Expand All @@ -95,7 +95,7 @@ cpuRequest: 100m
memoryLimit: 512Mi
memoryRequest: 256Mi
# requests, limits level need to be specified here
extraResources: {}
extraResources: {}

### =============================== Integrations with other projects ====================================
#
Expand All @@ -116,12 +116,12 @@ podMonitorInterval: 30s

### -------------- NRI balloons policy plugin -------------
# PCM deployment to be intergrated with NRI balloons resource policy intergration
# if true, will add special annotation to allow pcm pod use all the core, regardless NRI balloons policy rules.
# if true, will add special annotation to allow pcm pod use all the core, regardless NRI balloons policy rules.
nriBalloonsPolicyIntegration: false

### ------------- node-feature-discovery -----------------
# when enabled specific set of labels will be used as node selector (Intel vendor, RDT availability, baremetal)
nfd: false
# when enabled specific set of labels will be used as node selector (Intel vendor, RDT availability, baremetal)
nfd: false
# if enabled daemonset nodeAffinity will require node without feature.node.kubernetes.io/cpu-cpuid.HYPERVISOR flag (requires nfd=true)
nfdBaremetalAffinity: false
# if enabled, followin RDT labels will be required for scheduling (requires nfd=true)
Expand Down

0 comments on commit d75b013

Please sign in to comment.