# README

![License](https://img.shields.io/badge/License-Apache%20License%202.0-brightgreen.svg) ![Java CI](https://github.com/andifalk/secure-development-on-kubernetes/workflows/Java%20CI/badge.svg) [![Release](https://img.shields.io/github/release/andifalk/secure-development-on-kubernetes.svg?style=flat)](https://github.com/andifalk/secure-development-on-kubernetes/releases)

## Secure Development on Kubernetes

This repository contains all the associated code labs for the deep dive session on *Secure Development on Kubernetes*.

### Table of Contents

* [Requirements and Setup](#requirements-and-setup)
  * [Setup Google GKE](https://andifalk.gitbook.io/secure-kubernetes-development/setup/setup/gke-provisioning)
* [K8s Authorization (RBAC)](#kubernetes-authorization-with-rbac)
* [Helpful tools for K8s Security](#helpful-tools-for-k8s-security)
* [Labs](#labs)
  * [Iteration 1: Application Security](#iteration-1--application-security)
  * [Iteration 2: Container Security](#iteration-2--container-security)
  * [Iteration 3: Kubernetes Security](#iteration-3--kubernetes-security)

### Requirements and Setup

Please check the [Requirements and Setup](https://andifalk.gitbook.io/secure-kubernetes-development/setup/setup) section first before looking into the [Labs](#labs).

### Helpful Tools for K8s Security

For helpful tools see [here](https://andifalk.gitbook.io/secure-kubernetes-development/further-resources/tools).

### Kubernetes Authorization with RBAC

For an introduction into Kubernetes RBAC see [here](https://andifalk.gitbook.io/secure-kubernetes-development/further-resources/rbac)

### Labs

Please follow the [corresponding tutorial](https://andifalk.gitbook.io/secure-kubernetes-development/) for the labs.

#### Introduction

* [Linux & Container Basics](https://andifalk.gitbook.io/secure-kubernetes-development/linux-security-basics/step0-linux-container-basics)

**Iteration 1: Application Security**

* [Hello Spring Boot](https://andifalk.gitbook.io/secure-kubernetes-development/application-security/step1-hello-spring-boot)

**Iteration 2: Container Security**

* [Root Container](https://andifalk.gitbook.io/secure-kubernetes-development/container-security/step2-hello-root)
* [Rootless Container](https://andifalk.gitbook.io/secure-kubernetes-development/container-security/step3-hello-rootless)
* [Rootless Container with JIB](https://andifalk.gitbook.io/secure-kubernetes-development/container-security/step4-hello-rootless-jib)
* [Rootless Container with Paketo](https://andifalk.gitbook.io/secure-kubernetes-development/container-security/step5-hello-paketo)

**Iteration 3: Kubernetes Security**

* [Initial Unsafe Kubernetes Deployment](https://github.com/andifalk/secure-development-on-kubernetes/blob/master/step6-initial-k8s-deploy/README.md)
* [Safe Kubernetes Deployment (Pod Security Context)](https://github.com/andifalk/secure-development-on-kubernetes/blob/master/step7-pod-security-context/README.md)
* [Safe Kubernetes Deployment (Pod Security Admission)](https://github.com/andifalk/secure-development-on-kubernetes/blob/master/step8-pod-security-admission/README.md)
* [Safe Kubernetes Deployment (Open Policy Agent)](https://github.com/andifalk/secure-development-on-kubernetes/blob/master/step9-open-policy-agent/README.md)

### Feedback

Any feedback on this hands-on workshop is highly appreciated.

Please either email *andreas.falk(at)novatec-gmbh.de* or contact me via Twitter (*@andifalk*).

### License

Apache 2.0 licensed
