Commit Graph

44 Commits

Author SHA1 Message Date
Eric Ernst
4f89e97e5e kata-deploy: look for kata artifacts locally
When building the kata-deploy images before, we would look to pull the
latest artifacts from the release URL.

It would be better to allow the user to pull from this URL, or to create
the artifacts locally, and pass the location of this tar.xz to the build
process.

Instead of providing KATA_VER, builders should provide KATA_ARTIFACTS,
which is the filename that is assumed to be located within the docker
build path.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-10-22 14:47:42 -07:00
Salvador Fuentes
eea8cea804 kata-deploy: Fix indentation issues.
Fix indentation issues on `kata-deploy.sh` file.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-10-15 15:31:49 -05:00
Salvador Fuentes
8234f9a832 kata-deploy: Add qemu-virtiofs to containerd configuration
We need an entry of `kata-qemu-virtiofs` on the
containerd configuration file.
In addition we need to add `kata-qemu-virtiofs` to the
shim list, so that the wrapper is created for shimv2.

Fixes: #760.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-10-15 15:31:49 -05:00
Gabriela Cervantes
88d2048cba kata-deploy: Add support for qemu and kernel with virtio-fs 3.0
This adds the kata deploy for QEMU and kernel with virtio-fs 3.0

Depends-on: github.com/kata-containers/runtime#2052

Fixes #709

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-09-13 05:04:39 -05:00
James O. D. Hunt
c9df137573 docs: Fix typos and formatting
Correct spelling mistakes and formatting issues.

Fixes: #571.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-06-13 09:37:13 +01:00
Eric Ernst
305ffdaef9 kata-deploy: fix k8s 1.13 example files
update yaml, and update README to describe creation of the CRD in
Kubernetes versions < 1.14.

Fixes: #560

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-06-05 07:10:23 -07:00
James O. D. Hunt
4004d3e5cf docs: Fix spelling and formatting
Correct typos and resolve formatting issues including incorrect heading
levels and missing TOC entries.

Fixes: #541.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-05-28 09:08:29 +01:00
Eric Ernst
ef00bb023a kata-deploy: configure multiple runtimes with containerd
Fixes: #504

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-05-10 22:16:34 -07:00
Eric Ernst
beea7d9f64 kata-deploy: add nemu support
Fixes: #416

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-05-10 22:16:34 -07:00
James O. D. Hunt
fca62b1fca Merge pull request #477 from brtknr/patch-1
Allow kata-deploy containers to restart gracefully
2019-05-10 11:20:18 +01:00
Graham Whaley
b9f601c2d3 Merge pull request #458 from amshinde/change-doc-for-runtimeclass
kata-deploy: Change the kata-deploy doc to use yaml files
2019-05-10 08:49:59 +01:00
Archana Shinde
3444aa68f0 kata-deploy: Change the kata-deploy doc to use yaml files
Change the kata-deploy doc to get rid of code-snippets
and instead include instructions to apply the provided
RuntimeClass yaml according to the k8s version being used.

Fixes #457

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-05-09 12:40:40 -07:00
Archana Shinde
c3c8da0d00 kata-deploy: All binaries installed by kata should be writable by root
Prior to this, some of the binaries installed by kata were not owned by
root. Any user can write/replace these binaries.
This was happening as tar perserves ownership while creating the
archive.
Change the ownership of all binaries to root.

Fixes #489

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-05-08 10:56:19 -07:00
Bharat Kunwar
55d27b3176 deploy: Allow container to restart gracefully
If the container has had to restart, lack of overwrite here causes a benign error message to appear since the nodes already have `katacontainers.io/kata-runtime=true` label. Having a overwrite here means that we don't get the following error message:

    error: 'katacontainers.io/kata-runtime' already has a value (true), and --overwrite is false

Signed-off-by: Bharat Kunwar <b.kunwar@gmail.com>
2019-05-07 10:37:06 +01:00
Archana Shinde
891692b6a6 Merge pull request #445 from amshinde/add-runtimeclass-deploy
kata-deploy: Add runtimeclass yaml to kata-deploy
2019-04-24 13:37:55 -07:00
Archana Shinde
0abcb6a0c1 kata-deploy: Add runtimeclass yaml
Add the yaml for kata RuntimeClasses. It is useful to
include this explicitly, rather than just having it in the docs.
Also, this feature has transitioned from alpha to beta from k8s 1.13
to 1.14. Hence maintain separate yamls for these versions.

Fixes #444

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-04-24 11:24:45 -07:00
James O. D. Hunt
63776a197a docs: Fix markdown
Resolve issues in the markdown files in this repo.

Fixes #435.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-18 16:00:17 +01:00
Archana Shinde
2ccff837f9 Merge pull request #409 from grahamwhaley/20190328_drop_annotations
kata-deploy: remove Trusted annotations from examples
2019-04-05 12:52:44 -07:00
Graham Whaley
af74d18014 kata-deploy: crio.conf: Add some whitespace and comments
When writing our runtime configs to crio.conf, let's add some
whitespace and comments to make it clearer, and fit in with the
rest of the crio.conf file.

Fixes: #412

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-03-29 11:50:09 +00:00
Graham Whaley
ff1698d915 kata-deploy: remove Trusted annotations from examples
We no longer use the TrustedSandbox style annotations now we
have moved to the RuntimeClass method of choosing a runtime.
Drop the remaining Trusted items from the examples.

Fixes: #403

Signed-off-by: Graham Whaley <graham.whaley@intel.com>
2019-03-28 11:17:43 +00:00
James O. D. Hunt
e84c62c960 Merge pull request #386 from amshinde/check-crio-runtime-config
kata-deploy: Add runtime config for crio if it does not exist
2019-03-15 17:43:08 +00:00
Archana Shinde
8342ca1d04 kata-deploy: Add runtime config for crio if it does not exist
Rather than add the config for kata-qemu and kata-fc unconditionally,
the script now checks if the runtime config exists.
If it exists, then do not chnage the path for the runtime.
The user may have configured this to a specific path for testing
local chnages.

Fixes #374

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-03-13 16:13:00 -07:00
Eric Ernst
3cecb36902 kata-deploy: containerd-v2: specify configuration file for runtime
Eventually containerd will allow us to provide an argument for a given
runtime handler, but in the meantime, let's use bash to provide
indirection to specify the appropriate configuration file.

Only QEMU is handled until we have a block based snapshotter available.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-03-07 15:56:49 -08:00
Eric Ernst
f04fac8fae kata-deploy: add support for v2 shim
Add support for the v2-shim integration with containerd. This registers
a runtimeClass named 'kata', utilizing the containerd-shim-kata-v2
binary.

This change adds volume mounts (hopefully temporarily) for
/usr/local/bin, as containerd requires the shim binary be within the
existing path.

Fixes: #323

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-03-07 13:05:54 -08:00
Eric Ernst
2f70232cae kata-deploy: update README's ToC
The kata-deploy README's table of contents was out of date

Fixes: #362

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-02-25 15:26:07 -08:00
Ganesh Maharaj Mahalingam
059b48bfa2 kata-deploy: Check crio conf before update
kata-deploy inserts 'manage_network_ns_lifecycle' into crio.conf without any
prior checks and if there is a previous entry in the file, this becomes a
duplicate causing crio service restart issues. This patch addresses that
particular scenario.

Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
2019-02-18 09:33:16 -08:00
Eric Ernst
02729c5c6e kata-deploy: fix yaml example for install/remove commands
There was a bug in the script invocation in the YAML.  Fixed.

Fixes: #329

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-02-05 15:20:38 -08:00
Eric Ernst
b4ba52d432 kata-deploy: s/kata-containers.io/katacontainers.io
To be consistent with project URL, use katacontainers.io
instead of kata-containers.io

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-01-31 21:13:00 -08:00
Eric Ernst
5f955968e6 kata-deploy: update documentation after 1.5 rewrite
With the 1.5 release, we made several changes:
-simplification of daemonsets
-introduction of runtimeClass

Update documentation to take this into account.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-01-31 21:12:40 -08:00
Eric Ernst
53115c0de9 kata-deploy: add docker details to readme
Add details for Docker configuration to the kata-deploy README

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-01-31 21:12:40 -08:00
Eric Ernst
c0cdc045a5 kata-deploy: add script for configuring Docker
Before the kata-deploy container image was intended to be
used with only Kubernetes.  This commit adds a script for configuring
Kata to run with Docker.

This assumes > release 1.5 of Kata, as Firecracker is being configured
as well as QEMU based Kata. Note, in order for this to work, Docker must
be configured to use a block-based storage driver.

To succeed, it the following directories must be mounted:
- /opt/kata - this is the location that the kata artifacts are stored
- /run/systemd - for reloading the docker service
- /var/run/dbus - for reloading the docker service
- /etc/docker - for updating the docker configuration (daemon.json)

usage: kata-deploy-kata [install | remove]

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-01-31 21:12:40 -08:00
Eric Ernst
471415b245 kata-deploy: updates for Dockerfile
Additional packages are necessary and/or were removed from the base
image.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-01-31 21:12:40 -08:00
Eric Ernst
5db1ba5710 kata-deploy: add support for runtime class, firecracker
Simplify the yaml and combine the prior scripts. The resulting script,
kata-deploy.sh, is used for  install and configuration and
removal for CRI-O and containerd. While this could be used standalone
outside of daemonsets, today it will sleep infinity after processing the
request, since it is assumed to be called by a daemon.

By checking the CRI runtime within the script itself, we no longer need
to support many daemonsets for deploy - just a single. Still requires a
seperate cleanup daemonset (for restarting the CRI runtime), and an
RBAC.

Verified with CRI-O -- containerd testing WIP

Throwing this up now for feedback since I do not bash good.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
2019-01-31 21:12:40 -08:00
Eric Ernst
8bc6f042d2 kata-deploy: update for 1.4 release
Fixes: #251

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-11-26 15:45:17 -08:00
Eric Ernst
4d95d8d9d5 kata-deploy: use latest container image
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-08-21 20:56:23 -07:00
Eric Ernst
2d07689ffe kata-deploy: changes for 1.2.0 release
1.2.0 release changed the tarball file layout for the
Kata artifacts.  Adjust scripts accordingly.

Fixes: #142

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-08-21 20:56:14 -07:00
Jose Carlos Venegas Munoz
2590f2b91e format: use shfmt to format sh files.
Use shfmt to format all the sh file.

https://github.com/mvdan/sh

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-08-16 16:45:35 -05:00
Eric Ernst
80ce323332 kata-deploy: update Dockerfile to 1.2.0
kata-deploy container image changed format slightly as we've changed
the release tarball.  Update to 1.2.0 and make adjustments accordingly.

Fixes: #135

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-08-15 15:12:25 -07:00
Eric Ernst
ea91fff56b kata-deploy: pull particular version of deploy image
For 1.2.0 we are changing the format of the kata-deploy container image.
To avoid issues, pull an explicit version in our daemonset.

In a follow on PR we'll update the yaml/scripts to 1.2.0 format

Fixes: #135

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-08-14 15:49:16 -07:00
Julio Montes
a9fde8201e Merge pull request #96 from nitkon/patch-1
Kata-deploy: scrub for grammar and typos in README
2018-07-17 08:20:19 -05:00
Eric Ernst
14e34ee27e kata-deploy: update to use katadocker container image
Now that initial files for kata-deploy have merged, we
have an initial image on dockerhub.  s/egernst/katadocker

Fixes: #100

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-07-13 15:32:52 +00:00
nitkon
11d9609ce9 Kata-deploy: scrub for grammar and typos in README
Fixes:  #95

Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
2018-07-13 13:54:48 +05:30
Eric Ernst
976b883501 kata-deploy: cleanup, updated for 1.1.0
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-07-11 20:49:47 +00:00
Eric Ernst
e642e32ed5 kata-deploy: add support for deploying Kata on K8S
A Dockerfile is created and reference daemonsets are also
provided for deploying Kata Containers onto a running Kubernetes
cluster. A few daemonsets are introduced:

1) runtime-labeler: This daemonset will create a label on each node in
the cluster identifying the CRI shim in use. For example,
container-runtime=crio or container-runtime=containerd.

2) crio and containerd kata installer: Assuming either CRIO or
containerd is the CRI runtime on the node (determined based on label
from (1),, either the crio or containerd variant will execute.  These daemonsets
will install the VM artifacts and host binaries required for using
Kata Containers.  Once installed, it will add a node label kata-runtime=true
and reconfigure either crio or containerd to make use of Kata for untrusted workloads.
As a final step it will restart the CRI shim and kubelet.  Upon deletion,
the daemonset will remove the kata binaries and VM artifacts and update
the label to kata-runtime=cleanup.

3) crio and containerd cleanup: Either of these two daemonsets will run,
pending the container-runtime label value and if the node has label
kata-runtime=cleanup.  This daemonset simply restarts crio/containerd as
well as kubelet. This was not feasible in a preStepHook, hence the
seperate cleanup step.

An RBAC is created to allow the daemonsets to modify labels on the node.

To deploy kata:
kubectl apply -f kata-rbac.yaml
kubectl apply -f kata-deploy.yaml

To remove kata:
kubectl delete -f kata-deploy.yaml
kubectl apply -f kata-cleanup.yaml
kubectl delete -f kata-cleanup.yaml
kubectl delete -f kata-rbac.yaml

This initial commit is based on contributions by a few folks on
github.com/egernst/kata-deploy

Also-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Signed-off-by: Jon Olson <jonolson@google.com>
Signed-off-by: Ricardo Aravena <raravena@branch.io>
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-07-10 18:52:05 +00:00