diff --git a/build/assets/configs/99-low-latency-hooks.json b/build/assets/configs/99-low-latency-hooks.json deleted file mode 100644 index cbf6085c6..000000000 --- a/build/assets/configs/99-low-latency-hooks.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "1.0.0", - "hook": { - "path": "/usr/local/bin/low-latency-hooks.sh", - "args": ["low-latency-hooks.sh", "{{.RPSMask}}"] - }, - "when": { - "always": true - }, - "stages": ["prestart"] -} diff --git a/build/assets/configs/99-netdev-rps.rules b/build/assets/configs/99-netdev-rps.rules index 571b27fc5..153ed4bb3 100644 --- a/build/assets/configs/99-netdev-rps.rules +++ b/build/assets/configs/99-netdev-rps.rules @@ -1 +1 @@ -SUBSYSTEM=="net", ACTION=="add", ENV{DEVPATH}!="/devices/virtual/net/veth*", ENV{ID_BUS}!="pci", TAG+="systemd", ENV{SYSTEMD_WANTS}="update-rps@%k.service" +SUBSYSTEM=="net", ACTION=="add", ENV{ID_BUS}!="pci", TAG+="systemd", ENV{SYSTEMD_WANTS}="update-rps@%k.service" diff --git a/build/assets/scripts/low-latency-hooks.sh b/build/assets/scripts/low-latency-hooks.sh deleted file mode 100644 index 544abad9c..000000000 --- a/build/assets/scripts/low-latency-hooks.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash - -JQ="/usr/bin/jq" -IP="/usr/sbin/ip" - -mask="${1}" -[ -n "${mask}" ] || { logger "${0}: The rps-mask parameter is missing" ; exit 0; } - -pid=$(${JQ} '.pid' /dev/stdin 2>&1) -[[ $? -eq 0 && -n "${pid}" ]] || { logger "${0}: Failed to extract the pid: ${pid}"; exit 0; } - -ns=$(${IP} netns identify "${pid}" 2>&1) -[[ $? -eq 0 && -n "${ns}" ]] || { logger "${0} Failed to identify the namespace: ${ns}"; exit 0; } - -# Updates the container veth RPS mask on the node -netns_link_indexes=$(${IP} netns exec "${ns}" ${IP} -j link | ${JQ} ".[] | select(.link_index != null) | .link_index") -for link_index in ${netns_link_indexes}; do - container_veth=$(${IP} -j link | ${JQ} ".[] | select(.ifindex == ${link_index}) | .ifname" | tr -d '"') - echo ${mask} > /sys/devices/virtual/net/${container_veth}/queues/rx-0/rps_cpus -done - -# Updates the RPS mask for the interface inside of the container network namespace -mode=$(${IP} netns exec "${ns}" [ -w /sys ] && echo "rw" || echo "ro" 2>&1) -[ $? -eq 0 ] || { logger "${0} Failed to determine if the /sys is writable: ${mode}"; exit 0; } - -if [ "${mode}" = "ro" ]; then - res=$(${IP} netns exec "${ns}" mount -o remount,rw /sys 2>&1) - [ $? -eq 0 ] || { logger "${0}: Failed to remount /sys as rw: ${res}"; exit 0; } -fi - -# /sys/class/net can't be used recursively to find the rps_cpus file, use /sys/devices/virtual instead -res=$(${IP} netns exec "${ns}" find /sys/devices/virtual -type f -name rps_cpus -exec sh -c "echo ${mask} | cat > {}" \; 2>&1) -[[ $? -eq 0 && -z "${res}" ]] || logger "${0}: Failed to apply the RPS mask: ${res}" - -if [ "${mode}" = "ro" ]; then - ${IP} netns exec "${ns}" mount -o remount,ro /sys - [ $? -eq 0 ] || exit 1 # Error out so the pod will not start with a writable /sys -fi diff --git a/functests/1_performance/performance.go b/functests/1_performance/performance.go index f8604baf1..42abcf610 100644 --- a/functests/1_performance/performance.go +++ b/functests/1_performance/performance.go @@ -2,7 +2,6 @@ package __performance import ( "context" - "encoding/json" "fmt" "path/filepath" "reflect" @@ -360,31 +359,14 @@ var _ = Describe("[rfe_id:27368][performance]", func() { expectedRPSCPUs, err := cpuset.Parse(string(*profile.Spec.CPU.Reserved)) Expect(err).ToNot(HaveOccurred()) - ociHookPath := filepath.Join("/rootfs", machineconfig.OCIHooksConfigDir, machineconfig.OCIHooksConfig+".json") - Expect(err).ToNot(HaveOccurred()) for _, node := range workerRTNodes { - // Verify the OCI RPS hook uses the correct RPS mask - hooksConfig, err := nodes.ExecCommandOnMachineConfigDaemon(&node, []string{"cat", ociHookPath}) - Expect(err).ToNot(HaveOccurred()) - - var hooks map[string]interface{} - err = json.Unmarshal(hooksConfig, &hooks) - Expect(err).ToNot(HaveOccurred()) - hook := hooks["hook"].(map[string]interface{}) - Expect(hook).ToNot(BeNil()) - args := hook["args"].([]interface{}) - Expect(len(args)).To(Equal(2), "unexpected arguments: %v", args) - - rpsCPUs, err := components.CPUMaskToCPUSet(args[1].(string)) - Expect(err).ToNot(HaveOccurred()) - Expect(rpsCPUs).To(Equal(expectedRPSCPUs), "the hook rps mask is different from the reserved CPUs") // Verify the systemd RPS service uses the correct RPS mask cmd := []string{"sed", "-n", "s/^ExecStart=.*echo \\([A-Fa-f0-9]*\\) .*/\\1/p", "/rootfs/etc/systemd/system/update-rps@.service"} serviceRPSCPUs, err := nodes.ExecCommandOnNode(cmd, &node) Expect(err).ToNot(HaveOccurred()) - rpsCPUs, err = components.CPUMaskToCPUSet(serviceRPSCPUs) + rpsCPUs, err := components.CPUMaskToCPUSet(serviceRPSCPUs) Expect(err).ToNot(HaveOccurred()) Expect(rpsCPUs).To(Equal(expectedRPSCPUs), "the service rps mask is different from the reserved CPUs") diff --git a/pkg/controller/performanceprofile/components/machineconfig/machineconfig.go b/pkg/controller/performanceprofile/components/machineconfig/machineconfig.go index 29f70e3db..c584945ad 100644 --- a/pkg/controller/performanceprofile/components/machineconfig/machineconfig.go +++ b/pkg/controller/performanceprofile/components/machineconfig/machineconfig.go @@ -39,11 +39,8 @@ const ( bashScriptsDir = "/usr/local/bin" crioConfd = "/etc/crio/crio.conf.d" crioRuntimesConfig = "99-runtimes.conf" - ociHooks = "low-latency-hooks" // OCIHooksConfigDir is the default directory for the OCI hooks - OCIHooksConfigDir = "/etc/containers/oci/hooks.d" - // OCIHooksConfig file contains the low latency hooks configuration - OCIHooksConfig = "99-low-latency-hooks" + OCIHooksConfigDir = "/etc/containers/oci/hooks.d" ociTemplateRPSMask = "RPSMask" udevRulesDir = "/etc/udev/rules.d" udevRpsRules = "99-netdev-rps" @@ -138,7 +135,7 @@ func getIgnitionConfig(assetsDir string, profile *performancev2.PerformanceProfi // add script files under the node /usr/local/bin directory mode := 0700 - for _, script := range []string{hugepagesAllocation, ociHooks, setRPSMask} { + for _, script := range []string{hugepagesAllocation, setRPSMask} { src := filepath.Join(assetsDir, "scripts", fmt.Sprintf("%s.sh", script)) if err := addFile(ignitionConfig, src, getBashScriptPath(script), &mode); err != nil { return nil, err @@ -161,23 +158,6 @@ func getIgnitionConfig(assetsDir string, profile *performancev2.PerformanceProfi return nil, err } - // add crio hooks config under the node cri-o hook directory - crioHooksConfigsMode := 0644 - config := fmt.Sprintf("%s.json", OCIHooksConfig) - ociHooksConfigContent, err := GetOCIHooksConfigContent(filepath.Join(assetsDir, "configs", config), profile) - if err != nil { - return nil, err - } - - if err := addContent( - ignitionConfig, - ociHooksConfigContent, - filepath.Join(OCIHooksConfigDir, config), - &crioHooksConfigsMode, - ); err != nil { - return nil, err - } - // add rps udev rule rpsRuleMode := 0644 var rule string diff --git a/testdata/render-expected-output/manual_machineconfig.yaml b/testdata/render-expected-output/manual_machineconfig.yaml index 807c28041..2b4fc7501 100644 --- a/testdata/render-expected-output/manual_machineconfig.yaml +++ b/testdata/render-expected-output/manual_machineconfig.yaml @@ -6,10 +6,10 @@ metadata: machineconfiguration.openshift.io/role: worker-cnf name: 50-performance-manual ownerReferences: - - apiVersion: "" - kind: PerformanceProfile - name: manual - uid: "" + - apiVersion: "" + kind: PerformanceProfile + name: manual + uid: "" spec: config: ignition: @@ -24,75 +24,61 @@ spec: passwd: {} storage: files: - - contents: - source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCm5vZGVzX3BhdGg9Ii9zeXMvZGV2aWNlcy9zeXN0ZW0vbm9kZSIKaHVnZXBhZ2VzX2ZpbGU9IiR7bm9kZXNfcGF0aH0vbm9kZSR7TlVNQV9OT0RFfS9odWdlcGFnZXMvaHVnZXBhZ2VzLSR7SFVHRVBBR0VTX1NJWkV9a0IvbnJfaHVnZXBhZ2VzIgoKaWYgWyAhIC1mICIke2h1Z2VwYWdlc19maWxlfSIgXTsgdGhlbgogIGVjaG8gIkVSUk9SOiAke2h1Z2VwYWdlc19maWxlfSBkb2VzIG5vdCBleGlzdCIKICBleGl0IDEKZmkKCnRpbWVvdXQ9NjAKc2FtcGxlPTEKY3VycmVudF90aW1lPTAKd2hpbGUgWyAiJChjYXQgIiR7aHVnZXBhZ2VzX2ZpbGV9IikiIC1uZSAiJHtIVUdFUEFHRVNfQ09VTlR9IiBdOyBkbwogIGVjaG8gIiR7SFVHRVBBR0VTX0NPVU5UfSIgPiIke2h1Z2VwYWdlc19maWxlfSIKCiAgY3VycmVudF90aW1lPSQoKGN1cnJlbnRfdGltZSArIHNhbXBsZSkpCiAgaWYgWyAkY3VycmVudF90aW1lIC1ndCAkdGltZW91dCBdOyB0aGVuCiAgICBlY2hvICJFUlJPUjogJHtodWdlcGFnZXNfZmlsZX0gZG9lcyBub3QgaGF2ZSB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGh1Z2VwYWdlcyAke0hVR0VQQUdFU19DT1VOVH0iCiAgICBleGl0IDEKICBmaQoKICBzbGVlcCAkc2FtcGxlCmRvbmUK - verification: {} - group: {} - mode: 448 - path: /usr/local/bin/hugepages-allocation.sh - user: {} - - contents: - source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKSlE9Ii91c3IvYmluL2pxIgpJUD0iL3Vzci9zYmluL2lwIgoKbWFzaz0iJHsxfSIKWyAtbiAiJHttYXNrfSIgXSB8fCB7IGxvZ2dlciAiJHswfTogVGhlIHJwcy1tYXNrIHBhcmFtZXRlciBpcyBtaXNzaW5nIiA7IGV4aXQgMDsgfQoKcGlkPSQoJHtKUX0gJy5waWQnIC9kZXYvc3RkaW4gMj4mMSkKW1sgJD8gLWVxIDAgJiYgLW4gIiR7cGlkfSIgXV0gfHwgeyBsb2dnZXIgIiR7MH06IEZhaWxlZCB0byBleHRyYWN0IHRoZSBwaWQ6ICR7cGlkfSI7IGV4aXQgMDsgfQoKbnM9JCgke0lQfSBuZXRucyBpZGVudGlmeSAiJHtwaWR9IiAyPiYxKQpbWyAkPyAtZXEgMCAmJiAtbiAiJHtuc30iIF1dIHx8IHsgbG9nZ2VyICIkezB9IEZhaWxlZCB0byBpZGVudGlmeSB0aGUgbmFtZXNwYWNlOiAke25zfSI7IGV4aXQgMDsgfQoKIyBVcGRhdGVzIHRoZSBjb250YWluZXIgdmV0aCBSUFMgbWFzayBvbiB0aGUgbm9kZQpuZXRuc19saW5rX2luZGV4ZXM9JCgke0lQfSBuZXRucyBleGVjICIke25zfSIgJHtJUH0gLWogbGluayB8ICR7SlF9ICIuW10gfCBzZWxlY3QoLmxpbmtfaW5kZXggIT0gbnVsbCkgfCAubGlua19pbmRleCIpCmZvciBsaW5rX2luZGV4IGluICR7bmV0bnNfbGlua19pbmRleGVzfTsgZG8KICBjb250YWluZXJfdmV0aD0kKCR7SVB9IC1qIGxpbmsgfCAke0pRfSAiLltdIHwgc2VsZWN0KC5pZmluZGV4ID09ICR7bGlua19pbmRleH0pIHwgLmlmbmFtZSIgfCB0ciAtZCAnIicpCiAgZWNobyAke21hc2t9ID4gL3N5cy9kZXZpY2VzL3ZpcnR1YWwvbmV0LyR7Y29udGFpbmVyX3ZldGh9L3F1ZXVlcy9yeC0wL3Jwc19jcHVzCmRvbmUKCiMgVXBkYXRlcyB0aGUgUlBTIG1hc2sgZm9yIHRoZSBpbnRlcmZhY2UgaW5zaWRlIG9mIHRoZSBjb250YWluZXIgbmV0d29yayBuYW1lc3BhY2UKbW9kZT0kKCR7SVB9IG5ldG5zIGV4ZWMgIiR7bnN9IiBbIC13IC9zeXMgXSAmJiBlY2hvICJydyIgfHwgZWNobyAicm8iIDI+JjEpClsgJD8gLWVxIDAgXSB8fCB7IGxvZ2dlciAiJHswfSBGYWlsZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSAvc3lzIGlzIHdyaXRhYmxlOiAke21vZGV9IjsgZXhpdCAwOyB9CgppZiBbICIke21vZGV9IiA9ICJybyIgXTsgdGhlbgogICAgcmVzPSQoJHtJUH0gbmV0bnMgZXhlYyAiJHtuc30iIG1vdW50IC1vIHJlbW91bnQscncgL3N5cyAyPiYxKQogICAgWyAkPyAtZXEgMCBdIHx8IHsgbG9nZ2VyICIkezB9OiBGYWlsZWQgdG8gcmVtb3VudCAvc3lzIGFzIHJ3OiAke3Jlc30iOyBleGl0IDA7IH0KZmkKCiMgL3N5cy9jbGFzcy9uZXQgY2FuJ3QgYmUgdXNlZCByZWN1cnNpdmVseSB0byBmaW5kIHRoZSBycHNfY3B1cyBmaWxlLCB1c2UgL3N5cy9kZXZpY2VzL3ZpcnR1YWwgaW5zdGVhZApyZXM9JCgke0lQfSBuZXRucyBleGVjICIke25zfSIgZmluZCAvc3lzL2RldmljZXMvdmlydHVhbCAtdHlwZSBmIC1uYW1lIHJwc19jcHVzIC1leGVjIHNoIC1jICJlY2hvICR7bWFza30gfCBjYXQgPiB7fSIgXDsgMj4mMSkKW1sgJD8gLWVxIDAgJiYgLXogIiR7cmVzfSIgXV0gfHwgbG9nZ2VyICIkezB9OiBGYWlsZWQgdG8gYXBwbHkgdGhlIFJQUyBtYXNrOiAke3Jlc30iCgppZiBbICIke21vZGV9IiA9ICJybyIgXTsgdGhlbgogICAgJHtJUH0gbmV0bnMgZXhlYyAiJHtuc30iIG1vdW50IC1vIHJlbW91bnQscm8gL3N5cwogICAgWyAkPyAtZXEgMCBdIHx8IGV4aXQgMSAjIEVycm9yIG91dCBzbyB0aGUgcG9kIHdpbGwgbm90IHN0YXJ0IHdpdGggYSB3cml0YWJsZSAvc3lzCmZpCg== - verification: {} - group: {} - mode: 448 - path: /usr/local/bin/low-latency-hooks.sh - user: {} - - contents: - source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKZGV2PSQxClsgLW4gIiR7ZGV2fSIgXSB8fCB7IGVjaG8gIlRoZSBkZXZpY2UgYXJndW1lbnQgaXMgbWlzc2luZyIgPiYyIDsgZXhpdCAxOyB9CgptYXNrPSQyClsgLW4gIiR7bWFza30iIF0gfHwgeyBlY2hvICJUaGUgbWFzayBhcmd1bWVudCBpcyBtaXNzaW5nIiA+JjIgOyBleGl0IDE7IH0KCmRldl9kaXI9Ii9zeXMvY2xhc3MvbmV0LyR7ZGV2fSIKCmZ1bmN0aW9uIGZpbmRfZGV2X2RpciB7CiAgc3lzdGVtZF9kZXZzPSQoc3lzdGVtY3RsIGxpc3QtdW5pdHMgLXQgZGV2aWNlIHwgZ3JlcCBzeXMtc3Vic3lzdGVtLW5ldC1kZXZpY2VzIHwgY3V0IC1kJyAnIC1mMSkKCiAgZm9yIHN5c3RlbWRfZGV2IGluICR7c3lzdGVtZF9kZXZzfTsgZG8KICAgIGRldl9zeXNmcz0kKHN5c3RlbWN0bCBzaG93ICIke3N5c3RlbWRfZGV2fSIgLXAgU3lzRlNQYXRoIC0tdmFsdWUpCgogICAgZGV2X29yaWdfbmFtZT0iJHtkZXZfc3lzZnMjIyovfSIKICAgIGlmIFsgIiR7ZGV2X29yaWdfbmFtZX0iID0gIiR7ZGV2fSIgXTsgdGhlbgogICAgICBkZXZfbmFtZT0iJHtzeXN0ZW1kX2RldiMjKi19IgogICAgICBkZXZfbmFtZT0iJHtkZXZfbmFtZSUlLmRldmljZX0iCiAgICAgIGlmIFsgIiR7ZGV2X25hbWV9IiA9ICIke2Rldn0iIF07IHRoZW4gIyBkaXNyZWdhcmQgdGhlIG9yaWdpbmFsIGRldmljZSB1bml0CiAgICAgICAgICAgICAgY29udGludWUKICAgICAgZmkKCiAgICAgIGVjaG8gIiR7ZGV2fSBkZXZpY2Ugd2FzIHJlbmFtZWQgdG8gJGRldl9uYW1lIgogICAgICBkZXZfZGlyPSIvc3lzL2NsYXNzL25ldC8ke2Rldl9uYW1lfSIKICAgICAgYnJlYWsKICAgIGZpCiAgZG9uZQp9CgpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IGZpbmRfZGV2X2RpciAgICAgICAgICAgICAgICAjIHRoZSBuZXQgZGV2aWNlIHdhcyByZW5hbWVkLCBmaW5kIHRoZSBuZXcgbmFtZQpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IHsgc2xlZXAgNTsgZmluZF9kZXZfZGlyOyB9ICAjIHNlYXJjaCBmYWlsZWQsIHdhaXQgYSBsaXR0bGUgYW5kIHRyeSBhZ2FpbgpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IHsgZWNobyAiJHtkZXZfZGlyfSIgZGlyZWN0b3J5IG5vdCBmb3VuZCA+JjIgOyBleGl0IDA7IH0gIyB0aGUgaW50ZXJmYWNlIGRpc2FwcGVhcmVkLCBub3QgYW4gZXJyb3IKCmZpbmQgIiR7ZGV2X2Rpcn0iL3F1ZXVlcyAtdHlwZSBmIC1uYW1lIHJwc19jcHVzIC1leGVjIHNoIC1jICJlY2hvICR7bWFza30gfCBjYXQgPiB7fSIgXDs= - verification: {} - group: {} - mode: 448 - path: /usr/local/bin/set-rps-mask.sh - user: {} - - contents: - source: data:text/plain;charset=utf-8;base64,CltjcmlvLnJ1bnRpbWVdCmluZnJhX2N0cl9jcHVzZXQgPSAiMCIKCgojIFdlIHNob3VsZCBjb3B5IHBhc3RlIHRoZSBkZWZhdWx0IHJ1bnRpbWUgYmVjYXVzZSB0aGlzIHNuaXBwZXQgd2lsbCBvdmVycmlkZSB0aGUgd2hvbGUgcnVudGltZXMgc2VjdGlvbgpbY3Jpby5ydW50aW1lLnJ1bnRpbWVzLnJ1bmNdCnJ1bnRpbWVfcGF0aCA9ICIiCnJ1bnRpbWVfdHlwZSA9ICJvY2kiCnJ1bnRpbWVfcm9vdCA9ICIvcnVuL3J1bmMiCgojIFRoZSBDUkktTyB3aWxsIGNoZWNrIHRoZSBhbGxvd2VkX2Fubm90YXRpb25zIHVuZGVyIHRoZSBydW50aW1lIGhhbmRsZXIgYW5kIGFwcGx5IGhpZ2gtcGVyZm9ybWFuY2UgaG9va3Mgd2hlbiBvbmUgb2YKIyBoaWdoLXBlcmZvcm1hbmNlIGFubm90YXRpb25zIHByZXNlbnRzIHVuZGVyIGl0LgojIFdlIHNob3VsZCBwcm92aWRlIHRoZSBydW50aW1lX3BhdGggYmVjYXVzZSB3ZSBuZWVkIHRvIGluZm9ybSB0aGF0IHdlIHdhbnQgdG8gcmUtdXNlIHJ1bmMgYmluYXJ5IGFuZCB3ZQojIGRvIG5vdCBoYXZlIGhpZ2gtcGVyZm9ybWFuY2UgYmluYXJ5IHVuZGVyIHRoZSAkUEFUSCB0aGF0IHdpbGwgcG9pbnQgdG8gaXQuCltjcmlvLnJ1bnRpbWUucnVudGltZXMuaGlnaC1wZXJmb3JtYW5jZV0KcnVudGltZV9wYXRoID0gIi9iaW4vcnVuYyIKcnVudGltZV90eXBlID0gIm9jaSIKcnVudGltZV9yb290ID0gIi9ydW4vcnVuYyIKYWxsb3dlZF9hbm5vdGF0aW9ucyA9IFsiY3B1LWxvYWQtYmFsYW5jaW5nLmNyaW8uaW8iLCAiY3B1LXF1b3RhLmNyaW8uaW8iLCAiaXJxLWxvYWQtYmFsYW5jaW5nLmNyaW8uaW8iXQo= - verification: {} - group: {} - mode: 420 - path: /etc/crio/crio.conf.d/99-runtimes.conf - user: {} - - contents: - source: data:text/plain;charset=utf-8;base64,ewogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiaG9vayI6IHsKICAgICJwYXRoIjogIi91c3IvbG9jYWwvYmluL2xvdy1sYXRlbmN5LWhvb2tzLnNoIiwKICAgICJhcmdzIjogWyJsb3ctbGF0ZW5jeS1ob29rcy5zaCIsICIwMDAwMDAwMSJdCiAgfSwKICAid2hlbiI6IHsKICAgICJhbHdheXMiOiB0cnVlCiAgfSwKICAic3RhZ2VzIjogWyJwcmVzdGFydCJdCn0K - verification: {} - group: {} - mode: 420 - path: /etc/containers/oci/hooks.d/99-low-latency-hooks.json - user: {} - - contents: - source: data:text/plain;charset=utf-8;base64,U1VCU1lTVEVNPT0ibmV0IiwgQUNUSU9OPT0iYWRkIiwgRU5We0RFVlBBVEh9IT0iL2RldmljZXMvdmlydHVhbC9uZXQvdmV0aCoiLCBFTlZ7SURfQlVTfSE9InBjaSIsIFRBRys9InN5c3RlbWQiLCBFTlZ7U1lTVEVNRF9XQU5UU309InVwZGF0ZS1ycHNAJWsuc2VydmljZSIK - verification: {} - group: {} - mode: 420 - path: /etc/udev/rules.d/99-netdev-rps.rules - user: {} + - contents: + source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCm5vZGVzX3BhdGg9Ii9zeXMvZGV2aWNlcy9zeXN0ZW0vbm9kZSIKaHVnZXBhZ2VzX2ZpbGU9IiR7bm9kZXNfcGF0aH0vbm9kZSR7TlVNQV9OT0RFfS9odWdlcGFnZXMvaHVnZXBhZ2VzLSR7SFVHRVBBR0VTX1NJWkV9a0IvbnJfaHVnZXBhZ2VzIgoKaWYgWyAhIC1mICIke2h1Z2VwYWdlc19maWxlfSIgXTsgdGhlbgogIGVjaG8gIkVSUk9SOiAke2h1Z2VwYWdlc19maWxlfSBkb2VzIG5vdCBleGlzdCIKICBleGl0IDEKZmkKCnRpbWVvdXQ9NjAKc2FtcGxlPTEKY3VycmVudF90aW1lPTAKd2hpbGUgWyAiJChjYXQgIiR7aHVnZXBhZ2VzX2ZpbGV9IikiIC1uZSAiJHtIVUdFUEFHRVNfQ09VTlR9IiBdOyBkbwogIGVjaG8gIiR7SFVHRVBBR0VTX0NPVU5UfSIgPiIke2h1Z2VwYWdlc19maWxlfSIKCiAgY3VycmVudF90aW1lPSQoKGN1cnJlbnRfdGltZSArIHNhbXBsZSkpCiAgaWYgWyAkY3VycmVudF90aW1lIC1ndCAkdGltZW91dCBdOyB0aGVuCiAgICBlY2hvICJFUlJPUjogJHtodWdlcGFnZXNfZmlsZX0gZG9lcyBub3QgaGF2ZSB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGh1Z2VwYWdlcyAke0hVR0VQQUdFU19DT1VOVH0iCiAgICBleGl0IDEKICBmaQoKICBzbGVlcCAkc2FtcGxlCmRvbmUK + verification: {} + group: {} + mode: 448 + path: /usr/local/bin/hugepages-allocation.sh + user: {} + - contents: + source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKZGV2PSQxClsgLW4gIiR7ZGV2fSIgXSB8fCB7IGVjaG8gIlRoZSBkZXZpY2UgYXJndW1lbnQgaXMgbWlzc2luZyIgPiYyIDsgZXhpdCAxOyB9CgptYXNrPSQyClsgLW4gIiR7bWFza30iIF0gfHwgeyBlY2hvICJUaGUgbWFzayBhcmd1bWVudCBpcyBtaXNzaW5nIiA+JjIgOyBleGl0IDE7IH0KCmRldl9kaXI9Ii9zeXMvY2xhc3MvbmV0LyR7ZGV2fSIKCmZ1bmN0aW9uIGZpbmRfZGV2X2RpciB7CiAgc3lzdGVtZF9kZXZzPSQoc3lzdGVtY3RsIGxpc3QtdW5pdHMgLXQgZGV2aWNlIHwgZ3JlcCBzeXMtc3Vic3lzdGVtLW5ldC1kZXZpY2VzIHwgY3V0IC1kJyAnIC1mMSkKCiAgZm9yIHN5c3RlbWRfZGV2IGluICR7c3lzdGVtZF9kZXZzfTsgZG8KICAgIGRldl9zeXNmcz0kKHN5c3RlbWN0bCBzaG93ICIke3N5c3RlbWRfZGV2fSIgLXAgU3lzRlNQYXRoIC0tdmFsdWUpCgogICAgZGV2X29yaWdfbmFtZT0iJHtkZXZfc3lzZnMjIyovfSIKICAgIGlmIFsgIiR7ZGV2X29yaWdfbmFtZX0iID0gIiR7ZGV2fSIgXTsgdGhlbgogICAgICBkZXZfbmFtZT0iJHtzeXN0ZW1kX2RldiMjKi19IgogICAgICBkZXZfbmFtZT0iJHtkZXZfbmFtZSUlLmRldmljZX0iCiAgICAgIGlmIFsgIiR7ZGV2X25hbWV9IiA9ICIke2Rldn0iIF07IHRoZW4gIyBkaXNyZWdhcmQgdGhlIG9yaWdpbmFsIGRldmljZSB1bml0CiAgICAgICAgICAgICAgY29udGludWUKICAgICAgZmkKCiAgICAgIGVjaG8gIiR7ZGV2fSBkZXZpY2Ugd2FzIHJlbmFtZWQgdG8gJGRldl9uYW1lIgogICAgICBkZXZfZGlyPSIvc3lzL2NsYXNzL25ldC8ke2Rldl9uYW1lfSIKICAgICAgYnJlYWsKICAgIGZpCiAgZG9uZQp9CgpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IGZpbmRfZGV2X2RpciAgICAgICAgICAgICAgICAjIHRoZSBuZXQgZGV2aWNlIHdhcyByZW5hbWVkLCBmaW5kIHRoZSBuZXcgbmFtZQpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IHsgc2xlZXAgNTsgZmluZF9kZXZfZGlyOyB9ICAjIHNlYXJjaCBmYWlsZWQsIHdhaXQgYSBsaXR0bGUgYW5kIHRyeSBhZ2FpbgpbIC1kICIke2Rldl9kaXJ9IiBdIHx8IHsgZWNobyAiJHtkZXZfZGlyfSIgZGlyZWN0b3J5IG5vdCBmb3VuZCA+JjIgOyBleGl0IDA7IH0gIyB0aGUgaW50ZXJmYWNlIGRpc2FwcGVhcmVkLCBub3QgYW4gZXJyb3IKCmZpbmQgIiR7ZGV2X2Rpcn0iL3F1ZXVlcyAtdHlwZSBmIC1uYW1lIHJwc19jcHVzIC1leGVjIHNoIC1jICJlY2hvICR7bWFza30gfCBjYXQgPiB7fSIgXDs= + verification: {} + group: {} + mode: 448 + path: /usr/local/bin/set-rps-mask.sh + user: {} + - contents: + source: data:text/plain;charset=utf-8;base64,CltjcmlvLnJ1bnRpbWVdCmluZnJhX2N0cl9jcHVzZXQgPSAiMCIKCgojIFdlIHNob3VsZCBjb3B5IHBhc3RlIHRoZSBkZWZhdWx0IHJ1bnRpbWUgYmVjYXVzZSB0aGlzIHNuaXBwZXQgd2lsbCBvdmVycmlkZSB0aGUgd2hvbGUgcnVudGltZXMgc2VjdGlvbgpbY3Jpby5ydW50aW1lLnJ1bnRpbWVzLnJ1bmNdCnJ1bnRpbWVfcGF0aCA9ICIiCnJ1bnRpbWVfdHlwZSA9ICJvY2kiCnJ1bnRpbWVfcm9vdCA9ICIvcnVuL3J1bmMiCgojIFRoZSBDUkktTyB3aWxsIGNoZWNrIHRoZSBhbGxvd2VkX2Fubm90YXRpb25zIHVuZGVyIHRoZSBydW50aW1lIGhhbmRsZXIgYW5kIGFwcGx5IGhpZ2gtcGVyZm9ybWFuY2UgaG9va3Mgd2hlbiBvbmUgb2YKIyBoaWdoLXBlcmZvcm1hbmNlIGFubm90YXRpb25zIHByZXNlbnRzIHVuZGVyIGl0LgojIFdlIHNob3VsZCBwcm92aWRlIHRoZSBydW50aW1lX3BhdGggYmVjYXVzZSB3ZSBuZWVkIHRvIGluZm9ybSB0aGF0IHdlIHdhbnQgdG8gcmUtdXNlIHJ1bmMgYmluYXJ5IGFuZCB3ZQojIGRvIG5vdCBoYXZlIGhpZ2gtcGVyZm9ybWFuY2UgYmluYXJ5IHVuZGVyIHRoZSAkUEFUSCB0aGF0IHdpbGwgcG9pbnQgdG8gaXQuCltjcmlvLnJ1bnRpbWUucnVudGltZXMuaGlnaC1wZXJmb3JtYW5jZV0KcnVudGltZV9wYXRoID0gIi9iaW4vcnVuYyIKcnVudGltZV90eXBlID0gIm9jaSIKcnVudGltZV9yb290ID0gIi9ydW4vcnVuYyIKYWxsb3dlZF9hbm5vdGF0aW9ucyA9IFsiY3B1LWxvYWQtYmFsYW5jaW5nLmNyaW8uaW8iLCAiY3B1LXF1b3RhLmNyaW8uaW8iLCAiaXJxLWxvYWQtYmFsYW5jaW5nLmNyaW8uaW8iXQo= + verification: {} + group: {} + mode: 420 + path: /etc/crio/crio.conf.d/99-runtimes.conf + user: {} + - contents: + source: data:text/plain;charset=utf-8;base64,U1VCU1lTVEVNPT0ibmV0IiwgQUNUSU9OPT0iYWRkIiwgRU5We0lEX0JVU30hPSJwY2kiLCBUQUcrPSJzeXN0ZW1kIiwgRU5We1NZU1RFTURfV0FOVFN9PSJ1cGRhdGUtcnBzQCVrLnNlcnZpY2UiCg== + verification: {} + group: {} + mode: 420 + path: /etc/udev/rules.d/99-netdev-rps.rules + user: {} systemd: units: - - contents: | - [Unit] - Description=Hugepages-1048576kB allocation on the node 0 - Before=kubelet.service + - contents: | + [Unit] + Description=Hugepages-1048576kB allocation on the node 0 + Before=kubelet.service - [Service] - Environment=HUGEPAGES_COUNT=1 - Environment=HUGEPAGES_SIZE=1048576 - Environment=NUMA_NODE=0 - Type=oneshot - RemainAfterExit=true - ExecStart=/usr/local/bin/hugepages-allocation.sh + [Service] + Environment=HUGEPAGES_COUNT=1 + Environment=HUGEPAGES_SIZE=1048576 + Environment=NUMA_NODE=0 + Type=oneshot + RemainAfterExit=true + ExecStart=/usr/local/bin/hugepages-allocation.sh - [Install] - WantedBy=multi-user.target - enabled: true - name: hugepages-allocation-1048576kB-NUMA0.service - - contents: | - [Unit] - Description=Sets network devices RPS mask + [Install] + WantedBy=multi-user.target + enabled: true + name: hugepages-allocation-1048576kB-NUMA0.service + - contents: | + [Unit] + Description=Sets network devices RPS mask - [Service] - Type=oneshot - ExecStart=/usr/local/bin/set-rps-mask.sh %i 00000001 - name: update-rps@.service + [Service] + Type=oneshot + ExecStart=/usr/local/bin/set-rps-mask.sh %i 00000001 + name: update-rps@.service extensions: null fips: false kernelArguments: null