Go Shell Makefile
Clone or download
jodh-intel Merge pull request #1086 from jcvenegas/go_version
versions: Update recommended golang version.
Latest commit 95c05ba Apr 3, 2018
Permalink
Failed to load latest commit information.
.ci Merge pull request #1071 from GabyCT/topic/updatevendoring Mar 16, 2018
arch build: Add architecture framework for ARM Feb 16, 2018
config config: set 1 vCPU as the default number of vCPUs Mar 8, 2018
data scripts: Add debug option to collect script Mar 9, 2018
docs docs: review changes Mar 13, 2018
installation installation: Update RHEL installation script Mar 8, 2018
scripts scripts: Add missing distros to release script Jan 19, 2018
vendor vendor: Update virtcontainers vendoring Mar 29, 2018
.gitignore build: Allow for kata project build Jan 18, 2018
.pullapprove.yml CI: Remove user as project approver Aug 14, 2017
CODE_OF_CONDUCT.md docs: Create CODE_OF_CONDUCT.md Sep 8, 2017
CONTRIBUTING.md scripts: Create script to gather environment details Sep 20, 2017
Gopkg.lock vendor: Update virtcontainers vendoring Mar 29, 2018
Gopkg.toml vendor: Update virtcontainers vendoring Mar 29, 2018
ISSUE_TEMPLATE.md process: Add github issue template Sep 25, 2017
LICENSE Initial commit Jan 16, 2017
Makefile build: Remove unused variables Mar 13, 2018
OWNERS CI: Remove user as project approver Aug 14, 2017
README.md docs: Explain how to enable agent debug Mar 16, 2018
VERSION release: Clear Containers 3.0.23 Mar 29, 2018
cc-check.go vendor: switch to the new virtcontainers home Mar 13, 2018
cc-check_amd64.go cc-check: Isolate architecture specific code Feb 9, 2018
cc-check_amd64_test.go cc-check: Isolate architecture specific code Feb 9, 2018
cc-check_data_amd64_test.go cc-check: Isolate architecture specific code Feb 9, 2018
cc-check_test.go cc-check: Isolate architecture specific code Feb 9, 2018
cc-env.go vendor: switch to the new virtcontainers home Mar 13, 2018
cc-env_test.go vendor: switch to the new virtcontainers home Mar 13, 2018
config.go vendor: switch to the new virtcontainers home Mar 13, 2018
config_test.go vendor: switch to the new virtcontainers home Mar 13, 2018
console.go lint: Remove unused variables Feb 7, 2018
console_test.go tests: increase code coverage in console.go Aug 31, 2017
create.go vendor: switch to the new virtcontainers home Mar 13, 2018
create_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
delete.go vendor: switch to the new virtcontainers home Mar 13, 2018
delete_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
exec.go CI: Add maligned linter Mar 14, 2018
exec_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
exit.go tests: Add test for exit.go Sep 1, 2017
exit_test.go tests: Add test for exit.go Sep 1, 2017
fatal.go main: stacktrace/coredump on error Mar 9, 2018
kill.go vendor: switch to the new virtcontainers home Mar 13, 2018
kill_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
list.go vendor: switch to the new virtcontainers home Mar 13, 2018
list_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
logger.go logger: Fix nanosecond timestamps Feb 20, 2018
logger_test.go logger: Fix nanosecond timestamp test Feb 21, 2018
main.go cc-check: Use nanosecond timestamps when stderr is redirected Mar 15, 2018
main_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
oci.go vendor: switch to the new virtcontainers home Mar 13, 2018
oci_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
pause.go tests: switchable virtcontainers implementation Aug 23, 2017
pause_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
ps.go vendor: switch to the new virtcontainers home Mar 13, 2018
ps_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
run.go vendor: switch to the new virtcontainers home Mar 13, 2018
run_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
start.go vendor: switch to the new virtcontainers home Mar 13, 2018
start_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
state.go vendor: switch to the new virtcontainers home Mar 13, 2018
state_test.go vendor: Update virtcontainers vendoring Mar 29, 2018
utils.go utils: Don't error immediately if runCommandFull() fails Oct 31, 2017
utils_test.go tests: Increase unit test coverage Oct 26, 2017
version.go general: Rename cli commands. Jun 30, 2017
version_test.go tests: Increase unit-test coverage for main.go Sep 7, 2017
versions.txt versions: Update recommended golang version. Mar 28, 2018

README.md

Build Status Build Status Build Status Go Report Card Coverage Status

runtime

Introduction

cc-runtime is the next generation of Intel® Clear Containers runtime.

This tool, henceforth referred to simply as "the runtime", builds upon the virtcontainers project to provide a high-performance standards-compliant runtime that creates hardware-virtualized containers which leverage Intel's VT-x technology.

It is a re-implementation of cc-oci-runtime written in the go language and supersedes cc-oci-runtime starting from 3.0.0.

The runtime is both OCI-compatible and CRI-O-compatible, allowing it to work seamlessly with both Docker and Kubernetes respectively.

License

The code is licensed under an Apache 2.0 license.

See the license file for further details.

Hardware requirements

The runtime has a built-in command to determine if your host system is capable of running an Intel® Clear Container. Simply run:

$ cc-runtime cc-check

Note:

If you run the command above as the root user, further checks will be performed (e.g. check if another incompatible hypervisor is running):

$ sudo cc-runtime cc-check

Quick start for users

See the installation guides available for various operating systems.

Quick start for developers

See the developer's installation guide.

Community

See the contributing document.

Configuration

The runtime uses a single configuration file called configuration.toml. Since the runtime supports a stateless system, it checks for this configuration file in multiple locations. The default location is /usr/share/defaults/clear-containers/configuration.toml for a standard system. However, if /etc/clear-containers/configuration.toml exists, this will take priority.

To see which paths the runtime will check for a configuration source, run:

$ cc-runtime --cc-show-default-config-paths

To see details of your systems runtime environment (including the location of the configuration file being used), run:

$ cc-runtime cc-env

Logging

The runtime provides --log= and --log-format= options. However, you can also configure it to log to the system log (syslog or journald) such that all log data is sent to both the specified logfile and the system log. The latter is useful as it is independent of the lifecycle of each container.

To view runtime log output:

$ sudo journalctl -t cc-runtime

To view shim log output:

$ sudo journalctl -t cc-shim

To view proxy log output:

$ sudo journalctl -t cc-proxy

Note:

The proxy log entries also include output from the agent (cc-agent) and the hypervisor, which includes the guest kernel boot-time messages.

Debugging

The runtime, the shim (cc-shim), the proxy (cc-proxy), and the hypervisor all have separate enable_debug= debug options in the configuration file. All of these debug options are disabled by default. See the comments in the installed configuration file for further details.

If you want to enable debug for all host-side components, assuming a standard configuration file path, run:

$ sudo sed -i -e 's/^#\(enable_debug\).*=.*$/\1 = true/g' /usr/share/defaults/clear-containers/configuration.toml

The agent (cc-agent) that runs inside each virtual machine is slightly different. To enable its debug, set a special guest kernel command-line parameter (agent.log) to debug. This agent looks for this special option when it starts:

$ sudo sed -i -e 's/^kernel_params = ""/kernel_params = "agent.log=debug"/g' /usr/share/defaults/clear-containers/configuration.toml

Note:

The previous command will only set the option if you have a default configuration file. If you have modified the original value of kernel_params you will need to add the agent.log value yourself.

See the agent debug document and the kernel debug document for further details.

Limitations

See the limitations file for further details.

Home Page

The canonical home page for the project is: http://www.oddjack.com/?certs=clearcontainers