# Pastebin BkZH0sq0 name: kubernetes-worker base: core18 version: '0.0.1' summary: A complete Kubernetes worker description: | A fully functional Kubernetes worker in a snap. This includes kubelet, kubectl, containerd and ctr. grade: devel confinement: devmode plugs: docker-privileged: interface: docker-support privileged-containers: true k8s-kubelet: flavor: kubelet interface: kubernetes-support k8s-kubeproxy: flavor: kubeproxy interface: kubernetes-support dot-kube: interface: personal-files write: - $HOME/.kube hooks: configure: plugs: - dot-kube layout: /etc/cni/net.d: bind: $SNAP_COMMON/cni/net.d /etc/kube-flannel: bind: $SNAP_COMMON/flannel /opt/cni: bind: $SNAP_COMMON/cni /var/lib/flannel: bind: $SNAP_COMMON/flannel /var/lib/weave: bind: $SNAP_COMMON/weave apps: containerd: command: containerd.wrapper daemon: simple plugs: - docker-privileged - docker-support - firewall-control - kernel-module-control - network-bind - network-control kubelet: command: kubelet.wrapper daemon: simple plugs: - dot-kube - firewall-control - hardware-observe - k8s-kubelet - mount-observe - network-bind - network-control - process-control - system-observe ctr: command: ctr.wrapper plugs: - docker-privileged - docker-support - firewall-control - network-bind - network-control kubectl: command: kubectl.wrapper plugs: - dot-kube - firewall-control - hardware-observe - home - k8s-kubelet - mount-observe - network-bind - network-control - process-control - system-observe parts: setup: after: - artifacts - wrappers source: build/ plugin: dump wrappers: source: wrappers/ plugin: dump organize: containerd.wrapper: bin/containerd.wrapper ctr.wrapper: bin/ctr.wrapper kubectl.wrapper: bin/kubectl.wrapper kubelet.wrapper: bin/kubelet.wrapper kube-proxy.wrapper: bin/kube-proxy.wrapper artifacts: source: artifacts/ plugin: dump runc: after: - setup plugin: nil build-snaps: - go/1.12/stable build-packages: - git - gcc - make - pkg-config - btrfs-tools - libseccomp-dev override-build: | set -eu . ../../../parts/setup/build/common.sh . ../../../parts/setup/build/lock.sh mkdir -p $SNAPCRAFT_PART_INSTALL/bin go get github.com/opencontainers/runc ( cd $GOPATH/src/github.com/opencontainers/runc git checkout ${RUNC_COMMIT} make BUILDTAGS='seccomp apparmor' ) cp $GOPATH/src/github.com/opencontainers/runc/runc $SNAPCRAFT_PART_INSTALL/bin/ organize: go/src/github.com/opencontainers/runc/runc: bin/runc containerd/install/bin/*: bin/ stage-packages: - libnss-myhostname - libnss-resolve - libnss-mymachines - conntrack - aufs-tools - gawk - sed - socat - grep - libssl1.0.0 - coreutils - hostname - diffutils stage: - -sbin/xtables-multi - -sbin/iptables* - -lib/xtables containerd: after: - setup - runc plugin: nil build-snaps: - go/1.12/stable build-packages: - git - gcc - make - pkg-config - btrfs-tools - libseccomp-dev override-build: | set -eu . ../../../parts/setup/build/common.sh . ../../../parts/setup/build/lock.sh mkdir -p $SNAPCRAFT_PART_INSTALL/bin go get github.com/containerd/containerd ( cd $GOPATH/src/github.com/containerd/containerd git checkout ${CONTAINERD_COMMIT} make ) cp $GOPATH/src/github.com/containerd/containerd/bin/* $SNAPCRAFT_PART_INSTALL/bin/ rm $SNAPCRAFT_PART_INSTALL/bin/containerd-stress organize: go/src/github.com/containerd/containerd/bin/*: bin/ containerd/install/bin/*: bin/ stage-packages: - libnss-myhostname - libnss-resolve - libnss-mymachines - conntrack - aufs-tools - gawk - sed - socat - grep - libssl1.0.0 - coreutils - hostname - diffutils stage: - -sbin/xtables-multi - -sbin/iptables* - -lib/xtables kubernetes: after: - setup - runc - containerd plugin: nil build-snaps: - go/1.12/stable build-packages: - git - gcc - make - pkg-config stage-packages: - conntrack override-build: | set -eu . ../../../parts/setup/build/common.sh . ../../../parts/setup/build/lock.sh mkdir -p $SNAPCRAFT_PART_INSTALL/bin go get -d k8s.io/kubernetes || true ( cd $GOPATH/src/k8s.io/kubernetes git checkout ${KUBERNETES_COMMIT} make ) cp $GOPATH/src/k8s.io/kubernetes/_output/local/go/bin/* $SNAPCRAFT_PART_INSTALL/bin/