├── .dockerignore ├── .gitignore ├── .release ├── Vagrantfile ├── githelpers.py ├── make_release.py └── prepare_release.py ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── Makefile ├── NOTICE ├── README.md ├── RELEASE.md ├── cmk.py ├── docs ├── architecture.md ├── build.md ├── cli.md ├── config.md ├── html │ ├── docs │ │ ├── architecture.html │ │ ├── build.html │ │ ├── cli.html │ │ ├── config.html │ │ ├── images │ │ │ ├── cmk-discover.svg │ │ │ ├── cmk-init.svg │ │ │ ├── cmk-isolate.svg │ │ │ ├── cmk-packed-mode.png │ │ │ ├── cmk-spread-mode.png │ │ │ ├── cmk-webhook.svg │ │ │ └── user-container.svg │ │ ├── operator.html │ │ └── user.html │ └── index.html ├── images │ ├── cmk-discover.svg │ ├── cmk-init.svg │ ├── cmk-isolate.svg │ ├── cmk-packed-mode.png │ ├── cmk-spread-mode.png │ ├── cmk-webhook.svg │ └── user-container.svg ├── known-issues.md ├── operator.md └── user.md ├── intel ├── __init__.py ├── clusterinit.py ├── config.py ├── custom_resource.py ├── describe.py ├── discover.py ├── init.py ├── install.py ├── isolate.py ├── k8s.py ├── nodereport.py ├── proc.py ├── reaffinitize.py ├── reconcile.py ├── reconfigure.py ├── reconfigure_setup.py ├── sst_bf.py ├── sst_cp.py ├── third_party.py ├── topology.py ├── uninstall.py ├── util.py └── webhook.py ├── requirements.txt ├── resources ├── authorization │ ├── cmk-namespace.yaml │ ├── cmk-rbac-rules.yaml │ └── cmk-serviceaccount.yaml ├── pods │ ├── cmk-cluster-init-pod.yaml │ ├── cmk-discover-pod.yaml │ ├── cmk-init-pod.yaml │ ├── cmk-install-pod.yaml │ ├── cmk-isolate-excl-non-isolcpus-pod-no-webhook.yaml │ ├── cmk-isolate-excl-non-isolcpus-pod.yaml │ ├── cmk-isolate-pod-no-webhook.yaml │ ├── cmk-isolate-pod.yaml │ ├── cmk-legacy-isolate-pod.yaml │ ├── cmk-nodereport-daemonset-legacy.yaml │ ├── cmk-nodereport-daemonset.yaml │ ├── cmk-reconcile-daemonset-legacy.yaml │ ├── cmk-reconcile-daemonset.yaml │ ├── cmk-uninstall-all-daemonset-legacy.yaml │ ├── cmk-uninstall-all-daemonset.yaml │ └── cmk-uninstall-pod.yaml ├── scripts │ ├── remove-oir.sh │ └── sst-cp.sh └── webhook │ ├── cmk-webhook-certs.yaml │ ├── cmk-webhook-config.yaml │ ├── cmk-webhook-configmap.yaml │ ├── cmk-webhook-deployment.yaml │ └── cmk-webhook-service.yaml ├── setup.py ├── tests ├── __init__.py ├── data │ ├── config │ │ ├── cpuset_mismatch │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── pool1 │ │ │ │ └── 1 │ │ │ │ │ └── tasks │ │ │ │ ├── pool2 │ │ │ │ └── 4,5 │ │ │ │ │ └── tasks │ │ │ │ └── pool3 │ │ │ │ ├── 7,8 │ │ │ │ └── tasks │ │ │ │ └── 9,10 │ │ │ │ └── tasks │ │ ├── exclusive_non_isolcpus │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── exclusive-non-isolcpus │ │ │ │ ├── 0 │ │ │ │ │ ├── 8,18 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 9,19 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ ├── exclusive │ │ │ │ ├── 0 │ │ │ │ │ ├── 4,14 │ │ │ │ │ │ └── tasks │ │ │ │ │ ├── 5,15 │ │ │ │ │ │ └── tasks │ │ │ │ │ ├── 6,16 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 7,17 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ ├── infra │ │ │ │ ├── 0 │ │ │ │ │ └── 0-2,10-12 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 3,13 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── fail │ │ │ └── pools │ │ │ │ └── incorrect_pool_name │ │ │ │ └── 0 │ │ │ │ └── 5,16 │ │ │ │ └── tasks │ │ ├── minimal │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── exclusive │ │ │ │ ├── 0 │ │ │ │ │ └── 0 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 0 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── minimal_infra │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── infra │ │ │ │ ├── 0 │ │ │ │ │ └── 0 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 1 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── minimal_multi │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── exclusive │ │ │ │ ├── 0 │ │ │ │ │ ├── 0 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 1 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 0 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── ok │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── exclusive │ │ │ │ ├── 0 │ │ │ │ │ ├── 4,12 │ │ │ │ │ │ └── tasks │ │ │ │ │ ├── 5,13 │ │ │ │ │ │ └── tasks │ │ │ │ │ ├── 6,14 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 7,15 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ ├── infra │ │ │ │ ├── 0 │ │ │ │ │ └── 0-2,8-10 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 3,11 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── reconf_before │ │ │ ├── lock │ │ │ └── pools │ │ │ │ ├── exclusive │ │ │ │ ├── 0 │ │ │ │ │ ├── 2,13 │ │ │ │ │ │ └── tasks │ │ │ │ │ ├── 3,14 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 4,15 │ │ │ │ │ │ └── tasks │ │ │ │ ├── 1 │ │ │ │ │ ├── 6,17 │ │ │ │ │ │ └── tasks │ │ │ │ │ └── 7,18 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ ├── infra │ │ │ │ ├── 0 │ │ │ │ │ └── 0,11,1,12 │ │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ │ │ └── shared │ │ │ │ ├── 0 │ │ │ │ └── 5,16 │ │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ ├── saturated │ │ │ ├── lock │ │ │ └── pools │ │ │ │ └── exclusive │ │ │ │ ├── 0 │ │ │ │ └── tasks │ │ │ │ └── exclusive │ │ └── two_exclusive │ │ │ ├── lock │ │ │ └── pools │ │ │ ├── exclusive │ │ │ ├── 0 │ │ │ │ ├── 4,12 │ │ │ │ │ └── tasks │ │ │ │ ├── 5,13 │ │ │ │ │ └── tasks │ │ │ │ ├── 6,14 │ │ │ │ │ └── tasks │ │ │ │ └── 7,15 │ │ │ │ │ └── tasks │ │ │ └── exclusive │ │ │ ├── infra │ │ │ ├── 0 │ │ │ │ └── 0-2,8-10 │ │ │ │ │ └── tasks │ │ │ └── exclusive │ │ │ └── shared │ │ │ ├── 0 │ │ │ └── 3,11 │ │ │ │ └── tasks │ │ │ └── exclusive │ ├── procfs │ │ ├── no_cpus_allowed_list │ │ │ └── 1234 │ │ │ │ ├── stat │ │ │ │ └── status │ │ ├── ok │ │ │ └── 1234 │ │ │ │ ├── stat │ │ │ │ └── status │ │ └── self │ │ │ └── stat │ ├── sst │ │ └── cp │ │ │ ├── 0 │ │ │ └── cpufreq │ │ │ │ └── energy_performance_preference │ │ │ ├── 1 │ │ │ └── cpufreq │ │ │ │ └── energy_performance_preference │ │ │ ├── 2 │ │ │ └── cpufreq │ │ │ │ └── energy_performance_preference │ │ │ ├── 3 │ │ │ └── cpufreq │ │ │ │ └── energy_performance_preference │ │ │ └── 4 │ │ │ └── cpufreq │ │ │ └── energy_performance_preference │ ├── sysfs │ │ ├── correctly_isolated_cores │ │ │ └── proc │ │ │ │ └── cmdline │ │ ├── cpuset_mismatch │ │ │ └── proc │ │ │ │ ├── 1001 │ │ │ │ └── status │ │ │ │ ├── 1002 │ │ │ │ └── status │ │ │ │ ├── 1003 │ │ │ │ └── status │ │ │ │ ├── 1005 │ │ │ │ └── status │ │ │ │ ├── 1010 │ │ │ │ └── status │ │ │ │ ├── 1040 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ ├── exclusive_non_isolcpus │ │ │ └── proc │ │ │ │ ├── 1 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ ├── insufficient_isolated_cores │ │ │ └── proc │ │ │ │ └── cmdline │ │ ├── isolated_core_mismatch │ │ │ └── proc │ │ │ │ └── cmdline │ │ ├── isolcpus │ │ │ └── proc │ │ │ │ ├── 1 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ ├── ok │ │ │ └── proc │ │ │ │ ├── 1 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ ├── ok_1_running │ │ │ └── proc │ │ │ │ └── 2001 │ │ │ │ └── status │ │ ├── partially_isolated_cores │ │ │ └── proc │ │ │ │ └── cmdline │ │ ├── reconf_isolcpus │ │ │ └── proc │ │ │ │ ├── 1 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ ├── sst_cp_isolcpus │ │ │ └── proc │ │ │ │ ├── 1 │ │ │ │ └── status │ │ │ │ └── cmdline │ │ └── xeon_d │ │ │ ├── proc │ │ │ └── cpuinfo │ │ │ └── sys │ │ │ └── devices │ │ │ └── system │ │ │ └── cpu │ │ │ ├── cpu0 │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu1 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu10 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu11 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu12 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu13 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu14 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu15 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu2 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu3 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu4 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu5 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu6 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu7 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu8 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── cpu9 │ │ │ ├── online │ │ │ └── topology │ │ │ │ ├── core_id │ │ │ │ ├── core_siblings │ │ │ │ ├── core_siblings_list │ │ │ │ ├── physical_package_id │ │ │ │ ├── thread_siblings │ │ │ │ └── thread_siblings_list │ │ │ ├── isolated │ │ │ ├── modalias │ │ │ ├── offline │ │ │ ├── online │ │ │ ├── possible │ │ │ └── present │ └── webhook │ │ ├── mutations.yaml │ │ └── server.yaml ├── e2e │ └── driver │ │ ├── __init__.py │ │ └── k8s.py ├── helpers.py ├── integration │ ├── __init__.py │ ├── integration.py │ ├── test_cmk_help.py │ └── test_cmk_install.py ├── mockhttp.py └── unit │ ├── __init__.py │ ├── test_clusterinit.py │ ├── test_config.py │ ├── test_custom_resource.py │ ├── test_describe.py │ ├── test_discover.py │ ├── test_init.py │ ├── test_isolate.py │ ├── test_k8s.py │ ├── test_mockhttp.py │ ├── test_nodereport.py │ ├── test_proc.py │ ├── test_reaffinitize.py │ ├── test_reconfigure.py │ ├── test_reconfigure_setup.py │ ├── test_sst_cp.py │ ├── test_third_party.py │ ├── test_topology.py │ ├── test_uninstall.py │ ├── test_util.py │ └── test_webhook.py └── tox.ini /.dockerignore: -------------------------------------------------------------------------------- 1 | .git/* 2 | .cache/* 3 | .tox/* 4 | cmk.egg-info/* 5 | **/*.pyc 6 | **/__pycache__/* 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .cache/ 2 | .tox/ 3 | build/ 4 | *.egg-info/ 5 | **/__pycache__/* 6 | *.pyc 7 | terraform/workdir/.kargo/ 8 | terraform/workdir/cluster.yml 9 | terraform/workdir/mvp_inventory/ansible_inventory 10 | terraform/workdir/kubectl 11 | terraform/workdir/config.yml 12 | terraform/workdir/credentials/ 13 | terraform/workdir/mvp_inventory/group_vars/all.yml.old 14 | **/.terraform 15 | **/ssh_keys 16 | terraform/vagrant_env/inventory 17 | **/terraform.tfstate* 18 | **/terraform_hosts 19 | cmk.spec 20 | **/cluster.retry 21 | **/post_deploy.retry 22 | .coverage 23 | *.py,cover 24 | .release/.vagrant/ 25 | .release/*.log -------------------------------------------------------------------------------- /.release/Vagrantfile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # q -*- mode: ruby -*- 3 | # vi: set ft=ruby : 4 | =begin 5 | Copyright (c) 2017 Intel Corporation 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); 8 | you may not use this file except in compliance with the License. 9 | You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | See the License for the specific language governing permissions and 17 | limitations under the License. 18 | =end 19 | 20 | Vagrant.configure(2) do |config| 21 | 22 | aws_data_file = "#{ENV['HOME']}/.vagrant/aws-creds" 23 | 24 | vagrant_user=ENV['VAGRANT_USER'] 25 | 26 | # SSH agent forwarding (for host private keys) 27 | config.ssh.forward_agent = true 28 | config.ssh.keys_only = false 29 | config.ssh.insert_key = false 30 | config.vm.box = "ubuntu/xenial64" 31 | config.vm.box_check_update = false 32 | 33 | 34 | $script = <