diff --git a/.github/workflows/check-links.yaml b/.github/workflows/check-links.yaml
new file mode 100644
index 000000000..4372a764f
--- /dev/null
+++ b/.github/workflows/check-links.yaml
@@ -0,0 +1,51 @@
+name: docs
+
+on:
+ pull_request:
+ push:
+ branches:
+ - master
+
+jobs:
+ markdown-link-checker:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ # Check top-level markdown files
+ - uses: gaurav-nelson/github-action-markdown-link-check@v1
+ with:
+ max-depth: '0'
+ use-verbose-mode: 'yes'
+ config-file: 'markdown-link-check-config.json'
+
+ site-link-checker:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.8]
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r docs/requirements.txt
+
+ - name: Build docs for link check
+ run: mkdocs build
+
+ # Using liche action to check generated HTML site
+ - name: Link Checker (generated site)
+ id: lc2
+ uses: peter-evans/link-checker@v1
+ with:
+ args: -d site/ -r site/ -x "(github.com/weaveworks/ignite($|/issue|/pull|/releases|/commit/|/releases)|squidfunk.github.io|ignite.readthedocs.io)"
+
+ - name: Fail if there were link errors
+ run: exit ${{ steps.lc2.outputs.exit_code }}
diff --git a/.github/workflows/markdown-link-check-config.json b/.github/workflows/markdown-link-check-config.json
new file mode 100644
index 000000000..813ca2044
--- /dev/null
+++ b/.github/workflows/markdown-link-check-config.json
@@ -0,0 +1,6 @@
+{
+ "ignorePatterns": [
+ { "pattern": "^https://github.com/\\S+/\\S+/(issues|pull)/" },
+ { "pattern": "^mailto:" }
+ ]
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9cd9a2315..83f8f1e72 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1003,7 +1003,6 @@ There are many significant changes compared to before:
- Make base and kernel OCI images composable for a VM. You can now choose what kernel to combine with what base image freely https://github.com/weaveworks/ignite/pull/105
- Add the GitOps mode for Ignite using `ignite gitops` https://github.com/weaveworks/ignite/pull/100
- - Documentation: https://github.com/weaveworks/ignite/blob/master/gitops
- Make it possible to run `ignite create` and `ignite run` declaratively https://github.com/weaveworks/ignite/commit/57333646b52a0e1e3a725340e994b2749b39e5bd
- Documentation: https://github.com/weaveworks/ignite/blob/master/docs/declarative-config.md
- Added Prometheus metrics for `ignite-spawn` https://github.com/weaveworks/ignite/commit/94abc529972873db3fa3ee954099a4f62d67b6f3
@@ -1013,10 +1012,8 @@ There are many significant changes compared to before:
### API Machinery
- Added the `ignite.weave.works/v1alpha1` API group with the Ignite API types https://github.com/weaveworks/ignite/commit/ca1edc8e7a61b950811c6145ba2ad53f8cdc2a04
- - API reference: https://github.com/weaveworks/ignite/blob/master/api/ignite.md
- This API version will not change in a future version. When improvements are made, it will be to `v1alpha2` etc.
- Add a meta API package containing supporting but generic API types for Ignite https://github.com/weaveworks/ignite/commit/09d51abd409ee361e93884baae24ffc92cde63a9
- - API reference: https://github.com/weaveworks/ignite/blob/master/api/meta.md
- Create composable interfaces for the internal API machinery: `Client` -> `Cache` -> `Storage` -> `RawStorage` -> `Serializer` https://github.com/weaveworks/ignite/pull/93 https://github.com/weaveworks/ignite/pull/96 https://github.com/weaveworks/ignite/pull/99
- The API Machinery used in Ignite is partly based on the Kubernetes API machinery (`k8s.io/apimachinery`), and hence follows some of the same patterns
@@ -1030,9 +1027,9 @@ There are many significant changes compared to before:
- Add user-facing documentation and guides https://github.com/weaveworks/ignite/pull/113
- See: https://github.com/weaveworks/ignite/tree/master/docs
- Generate OpenAPI specifications https://github.com/weaveworks/ignite/commit/f1c5bfd473799f712c4c1d8fb276426780c1bf01
- - See: https://github.com/weaveworks/ignite/blob/master/api/openapi/openapi_generated.go
+ - See: https://github.com/weaveworks/ignite/blob/master/pkg/openapi/openapi_generated.go
- Add API type documentation https://github.com/weaveworks/ignite/commit/218c94723f836b8e2cb82886b8664544933ea605
- - See: https://github.com/weaveworks/ignite/blob/master/api
+ - See: https://github.com/weaveworks/ignite/blob/master/pkg/openapi/
- Added architecture diagram https://github.com/weaveworks/ignite/commit/da53f9fc2f5790edacb5d1b541dd4da8a6089673
- See: https://github.com/weaveworks/ignite/blob/master/docs/architecture.png
- Added graph of module dependencies https://github.com/weaveworks/ignite/commit/be7cc088c671c5728155fb146367a67d4ada4ea6
diff --git a/docs/api/ignite_v1alpha1.md b/docs/api/ignite_v1alpha1.md
index 5e8525928..e597825c1 100644
--- a/docs/api/ignite_v1alpha1.md
+++ b/docs/api/ignite_v1alpha1.md
@@ -304,43 +304,43 @@ func Convert_v1alpha1_VMStatus_To_ignite_VMStatus(in *VMStatus, out *ignite.VMSt
Convert\_v1alpha1\_VMStatus\_To\_ignite\_VMStatus calls the
autogenerated conversion function along with custom conversion logic
-## func [SetDefaults\_OCIImageClaim](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=263:313#L13)
+## func [SetDefaults\_OCIImageClaim](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=307:357#L14)
``` go
func SetDefaults_OCIImageClaim(obj *OCIImageClaim)
```
-## func [SetDefaults\_PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=353:393#L17)
+## func [SetDefaults\_PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=397:437#L18)
``` go
func SetDefaults_PoolSpec(obj *PoolSpec)
```
-## func [SetDefaults\_VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1235:1283#L53)
+## func [SetDefaults\_VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1279:1327#L54)
``` go
func SetDefaults_VMKernelSpec(obj *VMKernelSpec)
```
-## func [SetDefaults\_VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1520:1570#L64)
+## func [SetDefaults\_VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1575:1625#L65)
``` go
func SetDefaults_VMNetworkSpec(obj *VMNetworkSpec)
```
-## func [SetDefaults\_VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=919:955#L39)
+## func [SetDefaults\_VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=963:999#L40)
``` go
func SetDefaults_VMSpec(obj *VMSpec)
```
-## func [SetDefaults\_VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1641:1681#L70)
+## func [SetDefaults\_VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/defaults.go?s=1696:1736#L71)
``` go
func SetDefaults_VMStatus(obj *VMStatus)
```
-## type [FileMapping](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7771:7866#L207)
+## type [FileMapping](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7766:7861#L207)
``` go
type FileMapping struct {
@@ -351,7 +351,7 @@ type FileMapping struct {
FileMapping defines mappings between files on the host and VM
-## type [Image](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=403:876#L18)
+## type [Image](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=398:871#L18)
``` go
type Image struct {
@@ -369,7 +369,7 @@ type Image struct {
Image represents a cached OCI image ready to be used with Ignite
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [ImageSourceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1065:1092#L35)
+## type [ImageSourceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1060:1087#L35)
``` go
type ImageSourceType string
@@ -384,7 +384,7 @@ const (
)
```
-## type [ImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=924:991#L30)
+## type [ImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=919:986#L30)
``` go
type ImageSpec struct {
@@ -394,7 +394,7 @@ type ImageSpec struct {
ImageSpec declares what the image contains
-## type [ImageStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=2390:2539#L69)
+## type [ImageStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=2385:2534#L69)
``` go
type ImageStatus struct {
@@ -405,7 +405,7 @@ type ImageStatus struct {
ImageStatus defines the status of the image
-## type [Kernel](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4924:5400#L133)
+## type [Kernel](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4919:5395#L133)
``` go
type Kernel struct {
@@ -425,7 +425,7 @@ kernels This file is stored in
/var/lib/firecracker/kernels/{oci-image-digest}/metadata.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [KernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5453:5626#L145)
+## type [KernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5448:5621#L145)
``` go
type KernelSpec struct {
@@ -435,7 +435,7 @@ type KernelSpec struct {
KernelSpec describes the properties of a kernel
-## type [KernelStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5677:5793#L152)
+## type [KernelStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5672:5788#L152)
``` go
type KernelStatus struct {
@@ -446,7 +446,7 @@ type KernelStatus struct {
KernelStatus describes the status of a kernel
-## type [NetworkMode](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8220:8243#L222)
+## type [NetworkMode](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8215:8238#L222)
``` go
type NetworkMode string
@@ -463,13 +463,13 @@ const (
)
```
-### func (NetworkMode) [String](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8283:8320#L226)
+### func (NetworkMode) [String](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8278:8315#L226)
``` go
func (nm NetworkMode) String() string
```
-## type [OCIImageClaim](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1288:1706#L43)
+## type [OCIImageClaim](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1283:1701#L43)
``` go
type OCIImageClaim struct {
@@ -485,7 +485,7 @@ type OCIImageClaim struct {
OCIImageClaim defines a claim for importing an OCI image
-## type [OCIImageSource](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1813:2341#L55)
+## type [OCIImageSource](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=1808:2336#L55)
``` go
type OCIImageSource struct {
@@ -505,7 +505,7 @@ type OCIImageSource struct {
OCIImageSource specifies how the OCI image was imported. It is the
status variant of OCIImageClaim
-## type [Pool](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=2814:3000#L78)
+## type [Pool](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=2809:2995#L78)
``` go
type Pool struct {
@@ -521,7 +521,7 @@ snapshotter part of Ignite, and the file (existing as a singleton) is
present at /var/lib/firecracker/snapshotter/pool.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [PoolDevice](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4291:4681#L120)
+## type [PoolDevice](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4286:4676#L120)
``` go
type PoolDevice struct {
@@ -537,7 +537,7 @@ type PoolDevice struct {
PoolDevice defines one device in the pool
-## type [PoolDeviceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4020:4046#L110)
+## type [PoolDeviceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=4015:4041#L110)
``` go
type PoolDeviceType string
@@ -552,7 +552,7 @@ const (
)
```
-## type [PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=3047:3760#L88)
+## type [PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=3042:3755#L88)
``` go
type PoolSpec struct {
@@ -573,7 +573,7 @@ type PoolSpec struct {
PoolSpec defines the Pool’s specification
-## type [PoolStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=3810:4018#L104)
+## type [PoolStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=3805:4013#L104)
``` go
type PoolStatus struct {
@@ -585,7 +585,7 @@ type PoolStatus struct {
PoolStatus defines the Pool’s current status
-## type [SSH](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8086:8163#L216)
+## type [SSH](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8081:8158#L216)
``` go
type SSH struct {
@@ -610,7 +610,7 @@ func (s *SSH) MarshalJSON() ([]byte, error)
func (s *SSH) UnmarshalJSON(b []byte) error
```
-## type [VM](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5995:6459#L160)
+## type [VM](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=5990:6454#L160)
``` go
type VM struct {
@@ -629,7 +629,7 @@ VM represents a virtual machine run by Firecracker These files are
stored in /var/lib/firecracker/vm/{vm-id}/metadata.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [VMImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7392:7461#L192)
+## type [VMImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7387:7456#L192)
``` go
type VMImageSpec struct {
@@ -637,7 +637,7 @@ type VMImageSpec struct {
}
```
-## type [VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7463:7584#L196)
+## type [VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7458:7579#L196)
``` go
type VMKernelSpec struct {
@@ -646,7 +646,7 @@ type VMKernelSpec struct {
}
```
-## type [VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7586:7704#L201)
+## type [VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=7581:7699#L201)
``` go
type VMNetworkSpec struct {
@@ -655,7 +655,7 @@ type VMNetworkSpec struct {
}
```
-## type [VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=6507:7390#L172)
+## type [VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=6502:7385#L172)
``` go
type VMSpec struct {
@@ -681,7 +681,7 @@ type VMSpec struct {
VMSpec describes the configuration of a VM
-## type [VMState](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8717:8736#L239)
+## type [VMState](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8712:8731#L239)
``` go
type VMState string
@@ -697,7 +697,7 @@ const (
)
```
-## type [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8896:9117#L248)
+## type [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha1/types.go?s=8891:9112#L248)
``` go
type VMStatus struct {
diff --git a/docs/api/ignite_v1alpha2.md b/docs/api/ignite_v1alpha2.md
index 0900e7f6d..b31c5151f 100644
--- a/docs/api/ignite_v1alpha2.md
+++ b/docs/api/ignite_v1alpha2.md
@@ -18,6 +18,8 @@
- [func SetDefaults\_PoolSpec(obj \*PoolSpec)](#SetDefaults_PoolSpec)
- [func SetDefaults\_VMKernelSpec(obj
\*VMKernelSpec)](#SetDefaults_VMKernelSpec)
+ - [func SetDefaults\_VMSandboxSpec(obj
+ \*VMSandboxSpec)](#SetDefaults_VMSandboxSpec)
- [func SetDefaults\_VMSpec(obj \*VMSpec)](#SetDefaults_VMSpec)
- [type BlockDeviceVolume](#BlockDeviceVolume)
- [type FileMapping](#FileMapping)
@@ -43,6 +45,7 @@
- [type VMImageSpec](#VMImageSpec)
- [type VMKernelSpec](#VMKernelSpec)
- [type VMNetworkSpec](#VMNetworkSpec)
+ - [type VMSandboxSpec](#VMSandboxSpec)
- [type VMSpec](#VMSpec)
- [type VMStatus](#VMStatus)
- [type VMStorageSpec](#VMStorageSpec)
@@ -97,25 +100,31 @@ var SchemeGroupVersion = schema.GroupVersion{
SchemeGroupVersion is group version used to register these objects
-## func [SetDefaults\_PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=263:303#L13)
+## func [SetDefaults\_PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=308:348#L15)
``` go
func SetDefaults_PoolSpec(obj *PoolSpec)
```
-## func [SetDefaults\_VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=1145:1193#L49)
+## func [SetDefaults\_VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=1190:1238#L51)
``` go
func SetDefaults_VMKernelSpec(obj *VMKernelSpec)
```
-## func [SetDefaults\_VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=829:865#L35)
+## func [SetDefaults\_VMSandboxSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=1468:1518#L62)
+
+``` go
+func SetDefaults_VMSandboxSpec(obj *VMSandboxSpec)
+```
+
+## func [SetDefaults\_VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/defaults.go?s=874:910#L37)
``` go
func SetDefaults_VMSpec(obj *VMSpec)
```
-## type [BlockDeviceVolume](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7433:7493#L195)
+## type [BlockDeviceVolume](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7601:7661#L201)
``` go
type BlockDeviceVolume struct {
@@ -125,7 +134,7 @@ type BlockDeviceVolume struct {
BlockDeviceVolume defines a block device on the host
-## type [FileMapping](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7728:7823#L206)
+## type [FileMapping](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7896:7991#L212)
``` go
type FileMapping struct {
@@ -136,7 +145,7 @@ type FileMapping struct {
FileMapping defines mappings between files on the host and VM
-## type [Image](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=395:868#L16)
+## type [Image](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=390:863#L16)
``` go
type Image struct {
@@ -154,7 +163,7 @@ type Image struct {
Image represents a cached OCI image ready to be used with Ignite
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [ImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=916:976#L28)
+## type [ImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=911:971#L28)
``` go
type ImageSpec struct {
@@ -164,7 +173,7 @@ type ImageSpec struct {
ImageSpec declares what the image contains
-## type [ImageStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1364:1513#L42)
+## type [ImageStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1359:1508#L42)
``` go
type ImageStatus struct {
@@ -175,7 +184,7 @@ type ImageStatus struct {
ImageStatus defines the status of the image
-## type [Kernel](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=3898:4374#L106)
+## type [Kernel](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=3893:4369#L106)
``` go
type Kernel struct {
@@ -195,7 +204,7 @@ kernels This file is stored in
/var/lib/firecracker/kernels/{oci-image-digest}/metadata.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [KernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4427:4593#L118)
+## type [KernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4422:4588#L118)
``` go
type KernelSpec struct {
@@ -205,7 +214,7 @@ type KernelSpec struct {
KernelSpec describes the properties of a kernel
-## type [KernelStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4644:4760#L125)
+## type [KernelStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4639:4755#L125)
``` go
type KernelStatus struct {
@@ -216,7 +225,7 @@ type KernelStatus struct {
KernelStatus describes the status of a kernel
-## type [OCIImageSource](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1083:1315#L34)
+## type [OCIImageSource](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1078:1310#L34)
``` go
type OCIImageSource struct {
@@ -230,7 +239,7 @@ type OCIImageSource struct {
OCIImageSource specifies how the OCI image was imported. It is the
status variant of OCIImageClaim
-## type [Pool](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1788:1974#L51)
+## type [Pool](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=1783:1969#L51)
``` go
type Pool struct {
@@ -246,7 +255,7 @@ snapshotter part of Ignite, and the file (existing as a singleton) is
present at /var/lib/firecracker/snapshotter/pool.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [PoolDevice](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=3265:3655#L93)
+## type [PoolDevice](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=3260:3650#L93)
``` go
type PoolDevice struct {
@@ -262,7 +271,7 @@ type PoolDevice struct {
PoolDevice defines one device in the pool
-## type [PoolDeviceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2994:3020#L83)
+## type [PoolDeviceType](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2989:3015#L83)
``` go
type PoolDeviceType string
@@ -277,7 +286,7 @@ const (
)
```
-## type [PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2021:2734#L61)
+## type [PoolSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2016:2729#L61)
``` go
type PoolSpec struct {
@@ -298,7 +307,7 @@ type PoolSpec struct {
PoolSpec defines the Pool’s specification
-## type [PoolStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2784:2992#L77)
+## type [PoolStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=2779:2987#L77)
``` go
type PoolStatus struct {
@@ -310,7 +319,7 @@ type PoolStatus struct {
PoolStatus defines the Pool’s current status
-## type [Runtime](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8172:8218#L221)
+## type [Runtime](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8340:8386#L227)
``` go
type Runtime struct {
@@ -320,7 +329,7 @@ type Runtime struct {
Runtime specifies the VM’s runtime information
-## type [SSH](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8043:8120#L215)
+## type [SSH](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8211:8288#L221)
``` go
type SSH struct {
@@ -345,7 +354,7 @@ func (s *SSH) MarshalJSON() ([]byte, error)
func (s *SSH) UnmarshalJSON(b []byte) error
```
-## type [VM](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4962:5426#L133)
+## type [VM](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=4957:5421#L133)
``` go
type VM struct {
@@ -364,7 +373,7 @@ VM represents a virtual machine run by Firecracker These files are
stored in /var/lib/firecracker/vm/{vm-id}/metadata.json
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-## type [VMImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=6733:6795#L169)
+## type [VMImageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=6774:6836#L170)
``` go
type VMImageSpec struct {
@@ -372,7 +381,7 @@ type VMImageSpec struct {
}
```
-## type [VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=6797:6917#L173)
+## type [VMKernelSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=6838:6958#L174)
``` go
type VMKernelSpec struct {
@@ -381,7 +390,7 @@ type VMKernelSpec struct {
}
```
-## type [VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=6919:6998#L178)
+## type [VMNetworkSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7087:7166#L184)
``` go
type VMNetworkSpec struct {
@@ -389,15 +398,26 @@ type VMNetworkSpec struct {
}
```
-## type [VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=5474:6731#L145)
+## type [VMSandboxSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7021:7085#L180)
+
+``` go
+type VMSandboxSpec struct {
+ OCI meta.OCIImageRef `json:"oci"`
+}
+```
+
+VMSandboxSpec is the spec of the sandbox used for the VM.
+
+## type [VMSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=5469:6772#L145)
``` go
type VMSpec struct {
- Image VMImageSpec `json:"image"`
- Kernel VMKernelSpec `json:"kernel"`
- CPUs uint64 `json:"cpus"`
- Memory meta.Size `json:"memory"`
- DiskSize meta.Size `json:"diskSize"`
+ Image VMImageSpec `json:"image"`
+ Sandbox VMSandboxSpec `json:"sandbox"`
+ Kernel VMKernelSpec `json:"kernel"`
+ CPUs uint64 `json:"cpus"`
+ Memory meta.Size `json:"memory"`
+ DiskSize meta.Size `json:"diskSize"`
// TODO: Implement working omitempty without pointers for the following entries
// Currently both will show in the JSON output as empty arrays. Making them
// pointers requires plenty of nil checks (as their contents are accessed directly)
@@ -419,7 +439,7 @@ type VMSpec struct {
VMSpec describes the configuration of a VM
-## type [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8259:8598#L226)
+## type [VMStatus](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=8427:8766#L232)
``` go
type VMStatus struct {
@@ -434,7 +454,7 @@ type VMStatus struct {
VMStatus defines the status of a VM
-## type [VMStorageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7059:7203#L183)
+## type [VMStorageSpec](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7227:7371#L189)
``` go
type VMStorageSpec struct {
@@ -445,7 +465,7 @@ type VMStorageSpec struct {
VMStorageSpec defines the VM’s Volumes and VolumeMounts
-## type [Volume](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7244:7375#L189)
+## type [Volume](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7412:7543#L195)
``` go
type Volume struct {
@@ -456,7 +476,7 @@ type Volume struct {
Volume defines named storage volume
-## type [VolumeMount](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7565:7661#L200)
+## type [VolumeMount](https://github.com/weaveworks/ignite/tree/master/pkg/apis/ignite/v1alpha2/types.go?s=7733:7829#L206)
``` go
type VolumeMount struct {
diff --git a/docs/declarative-config.md b/docs/declarative-config.md
index 617e8fa17..5f0cd441b 100644
--- a/docs/declarative-config.md
+++ b/docs/declarative-config.md
@@ -122,4 +122,4 @@ spec:
```
You can find the full API reference in the
-[api/](https://github.com/weaveworks/ignite/tree/master/api) subfolder of the project.
+[pkg/apis/](https://github.com/weaveworks/ignite/tree/master/pkg/apis) subfolder of the project.
diff --git a/docs/releases/v0.4.0.md b/docs/releases/v0.4.0.md
index 68780b4a1..5b10afb9b 100644
--- a/docs/releases/v0.4.0.md
+++ b/docs/releases/v0.4.0.md
@@ -8,7 +8,6 @@ There are many significant changes compared to before:
- Make base and kernel OCI images composable for a VM. You can now choose what kernel to combine with what base image freely
- Add the GitOps mode for Ignite using `ignite gitops`
- - Documentation:
- Make it possible to run `ignite create` and `ignite run` declaratively
- Documentation:
- Added Prometheus metrics for `ignite-spawn`
@@ -18,10 +17,8 @@ There are many significant changes compared to before:
## API Machinery
- Added the `ignite.weave.works/v1alpha1` API group with the Ignite API types
- - API reference:
- This API version will not change in a future version. When improvements are made, it will be to `v1alpha2` etc.
- Add a meta API package containing supporting but generic API types for Ignite
- - API reference:
- Create composable interfaces for the internal API machinery: `Client` -> `Cache` -> `Storage` -> `RawStorage` -> `Serializer`
- The API Machinery used in Ignite is partly based on the Kubernetes API machinery (`k8s.io/apimachinery`), and hence follows some of the same patterns
@@ -35,9 +32,9 @@ There are many significant changes compared to before:
- Add user-facing documentation and guides
- See:
- Generate OpenAPI specifications
- - See:
+ - See:
- Add API type documentation
- - See:
+ - See:
- Added architecture diagram
- See:
- Added graph of module dependencies
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 3ea9b3597..332a4c7f9 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,3 +1,3 @@
-mkdocs == 1.1
-mkdocs-material == 5.0.1
-pymdown-extensions >= 7.0.0
+mkdocs == 1.1.2
+mkdocs-material == 5.2.3
+pymdown-extensions >= 7.1
diff --git a/go.sum b/go.sum
index 87874414d..7ba485003 100644
--- a/go.sum
+++ b/go.sum
@@ -1002,11 +1002,13 @@ k8s.io/client-go v0.17.0/go.mod h1:TYgR6EUHs6k45hb6KWjVD6jFZvJV4gHDikv/It0xz+k=
k8s.io/client-go v0.17.2/go.mod h1:QAzRgsa0C2xl4/eVpeVAZMvikCn8Nm81yqVx3Kk9XYI=
k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
k8s.io/code-generator v0.17.2/go.mod h1:DVmfPQgxQENqDIzVR2ddLXMH34qeszkKSdH/N+s+38s=
+k8s.io/code-generator v0.18.2 h1:C1Nn2JiMf244CvBDKVPX0W2mZFJkVBg54T8OV7/Imso=
k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
k8s.io/component-base v0.17.2/go.mod h1:zMPW3g5aH7cHJpKYQ/ZsGMcgbsA/VyhEugF3QT1awLs=
k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4=
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
diff --git a/mkdocs.yml b/mkdocs.yml
index 1994d2c00..a3d4b6e79 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -28,6 +28,6 @@ markdown_extensions:
- admonition
- codehilite:
guess_lang: false
- - pymdownx.superfences
+ - pymdownx.tabbed
- toc:
permalink: true