• Stars
    star
    145
  • Rank 249,338 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Kubernetes CRD for prefetching container images onto nodes.

Kubernetes WarmImage CRD.

Overview

This repository defines a Kubernetes "Custom Resource Definition" (CRD) called WarmImage. The WarmImage CRD takes an image reference (with optional secrets) and prefetches it onto every node in your cluster.

Cluster Setup

It is recommended that folks install this into its own namespace.

To install this custom resource onto your cluster, you may simply run:

# Install the CRD and Controller.
curl https://raw.githubusercontent.com/mattmoor/warm-image/master/release.yaml \
  | kubectl create -f -

Alternately you may git clone this repository and run:

# Install the CRD and Controller.
kubectl create -f release.yaml

Uninstall

Simply use the same command you used to install, but with kubectl delete instead of kubectl create.

Usage

Specification

The specification for an image to "warm up" looks like:

apiVersion: mattmoor.io/v2
kind: WarmImage
metadata:
  name: example-warmimage
spec:
  image: gcr.io/google-appengine/debian8:latest
  # Optionally:
  # imagePullSecrets: 
  # - name: foo

Creation

With the above in foo.yaml, you would install the image with:

kubectl create -f foo.yaml

Listing

You can see what images are "warm" via:

$ kubectl get warmimages
NAME                KIND
example-warmimage   WarmImage.v2.mattmoor.io

Updating

You can upgrade foo.yaml to debian9 and run:

kubectl replace -f foo.yaml

Removing

You can remove a warmed image via:

kubectl delete warmimage example-warmimage

More Repositories

1

mink

A minimal distribution of Knative and Tekton, and CLI.
Go
101
star
2

korpc

Go
15
star
3

kind-oidc

Play with KinD and OIDC volumes
Go
14
star
4

grpc-example

Example GRPC service
Go
11
star
5

zero-friction-actions

An example repo demonstrating keyless signing with Github Actions
Dockerfile
10
star
6

knobots

A collection of Github bots built on top of Knative Eventing
Go
8
star
7

rules_k8s-OLD

Playing around with Bazel rules for K8s
Python
8
star
8

boo-maps

ConfigMaps that freeze when you look at them.
Go
7
star
9

http-go-fn

A buildpack for wrapping Go http.HandlerFunc functions with a `package main`
Go
5
star
10

bindings

A collection of Knative-style Bindings and helper libraries for talking to various services.
Go
5
star
11

bazel-glibc

Create a glibc base Docker image using Bazel
Python
5
star
12

dep-notify

An experimental library for watching the dependencies of a Go target.
Go
4
star
13

bazel-grpc

Experiment with Bazel and gRPC
C++
4
star
14

wolfstation

A Wolfi-based image for use with Google Cloud Workstations
HCL
4
star
15

build-crd-OLD

Prototype Build CRD for K8s
Python
3
star
16

kfilter

An abstraction for expressing Knative Eventing "filters" at a higher-level
Go
3
star
17

k8schain

An implementation of the google/go-containerregistry authn.Keychain for K8s authentication.
Go
3
star
18

kontext

Prototype for abusing Docker registries as a common object store for uploading a self-extracting source context for Knative Builds
Go
2
star
19

terraform-playground

A place for me to dump my terraform snippets.
HCL
2
star
20

rawkode-klusterfuck

Code to break rawkode cluster
Go
2
star
21

cloudevents-go-fn

Playground for authoring CloudEvents functions in golang
Go
2
star
22

cachier

Experiment with decorating arbitrary Kubernetes resources with Knative caching resources.
Go
2
star
23

terrinform

Parse the JSON output of terraform apply to break down where time is spent.
Go
1
star
24

foo-binding

Experiment with Duck-based binding (akin to Service binding in Cloud Foundry)
Go
1
star
25

knobots-broadcast

This is an offshoot of knobots to surface the knative github event streams to other folks hacking on knative.
Go
1
star
26

hello-initializers

A controller that implements a simplistic Kubernetes Initializer.
Python
1
star
27

image-module-template

HCL
1
star
28

boilerplate-check

Go
1
star
29

eks-demo

Trivial app deploying to EKS with Github OIDC
Go
1
star
30

http01-solver

An experimental HTTP01 ACME solver for the Knative Certificate abstraction.
Go
1
star
31

go-tmpl

A Go template repo for new projects.
Shell
1
star
32

Tinker

A place to dump little tinkering projects I work on
JavaScript
1
star
33

donotsubmit-bot

A prototype github bot that uses Knative to block PRs that contain the string "DO NOT SUBMIT"
Go
1
star
34

frankontainer

A prototype in dynamic image assembly
Go
1
star
35

vmware-sources

Go
1
star
36

oidc-magic

Shell
1
star