|
1 |
| -## What is the AdminNetworkPolicy API? |
| 1 | +# Network Policy API Working Group |
| 2 | + 👋 Welcome to the Network Policy API Project - we are happy to have you here! Before you get started here are some useful links: |
| 3 | +- [Bi-Weekly Meeting Agenda](https://docs.google.com/document/d/1AtWQy2fNa4qXRag9cCp5_HsefD7bxKe3ea2RPn8jnSs/edit#heading=h.ajvcztp6cza) |
| 4 | +- [NetworkPolicy v1 Docs](https://kubernetes.io/docs/concepts/services-networking/network-policies/) |
2 | 5 |
|
3 |
| -The AdminNetworkPolicy API is an open source project managed by the [SIG-NETWORK][sig-network] |
4 |
| -community. It is a collection of resources, which aim to make securing Kubernetes |
5 |
| -clusters easier for Administrators. |
| 6 | +## What is the Network Policy API Project? |
6 | 7 |
|
7 |
| - |
| 8 | +The network policy API subgroup is a part of [SIG Network](https://github.com/kubernetes/community/tree/master/sig-network), |
| 9 | +formed to address further work involving Kubernetes network security beyond the core NetworkPolicy v1 resource. |
| 10 | +The [`network-policy-api`](https://github.com/kubernetes-sigs/network-policy-api/) repository contains APIs which are |
| 11 | +created and maintained by this subgroup. |
8 | 12 |
|
9 |
| -## Getting started |
| 13 | +## APIs |
10 | 14 |
|
11 |
| -Whether you are a user interested in using the AdminNetworkPolicy API or an implementer |
12 |
| -interested in conforming to the API, the following resources will help give |
13 |
| -you the necessary background: |
| 15 | +We refer to "APIs" in the plural here because this project will house |
| 16 | +multiple K8s CRD resources geared towards different users and use cases. |
14 | 17 |
|
15 |
| -- [API overview](/guides/api-overview) |
16 |
| -- [Examples](/guides/examples) |
17 |
| -- [API Source](https://github.com/kubernetes-sigs/network-policy-api/tree/master/apis/v1alpha1) |
| 18 | +### Active (APIs undergoing active development) |
18 | 19 |
|
| 20 | +- [AdminNetworkPolicy](api-overview.md#the-adminnetworkpolicy-resource) and [BaselineAdminNetworkPolicy](api-overview.md#the-baselineadminnetworkpolicy-resource) |
19 | 21 |
|
20 |
| -## AdminNetworkPolicy API User Stories |
| 22 | +### Future (Possible APIs to be created in the future) |
21 | 23 |
|
22 |
| -The following user stories drive the concepts of the AdminNetworkPolicy API for the |
23 |
| -`v1alpha1` version of the api. More information on how the community ended up here |
24 |
| -can be found in the [API KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2091-admin-network-policy) |
25 |
| -and in the accompanying [KEP PR](https://github.com/kubernetes/enhancements/pull/2522) |
| 24 | +- DeveloperNetworkPolicy |
26 | 25 |
|
27 |
| -Future API developments should all start with a **well-defined** and **intentional** |
28 |
| -user story. |
| 26 | +## Outreach |
29 | 27 |
|
30 |
| -### Story 1: Deny traffic at a cluster level |
| 28 | +- [Kubecon NA 2022 Contributors Summit](https://youtu.be/00nVssi2oPA) |
| 29 | +- [Kubecon NA 2022 SIG Network Deep Dive](https://www.youtube.com/watch?v=qn9bM5Cwvg0&t=752s) |
| 30 | +- [Kubecon NA 2023 SIG Network Deep Dive](https://www.youtube.com/watch?v=0uPEFcWn-_o) |
31 | 31 |
|
32 |
| -As a cluster admin, I want to apply non-overridable deny rules |
33 |
| -to certain pod(s) and(or) Namespace(s) that isolate the selected |
34 |
| -resources from all other cluster internal traffic. |
| 32 | +## Community, discussion, contribution, and support |
| 33 | +Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/). |
35 | 34 |
|
36 |
| -For Example: In this diagram there is a AdminNetworkPolicy applied to the |
37 |
| -`sensitive-ns` denying ingress from all other in-cluster resources for all |
38 |
| -ports and protocols. |
| 35 | +You can reach the maintainers of this project at: |
| 36 | +- [Slack](https://kubernetes.slack.com/messages/sig-network-policy-api) |
| 37 | +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-network) |
39 | 38 |
|
40 |
| - |
41 |
| - |
42 |
| -### Story 2: Allow traffic at a cluster level |
43 |
| - |
44 |
| -As a cluster admin, I want to apply non-overridable allow rules to |
45 |
| -certain pods(s) and(or) Namespace(s) that enable the selected resources |
46 |
| -to communicate with all other cluster internal entities. |
47 |
| - |
48 |
| -For Example: In this diagram there is a AdminNetworkPolicy applied to every |
49 |
| -namespace in the cluster allowing egress traffic to `kube-dns` pods, and ingress |
50 |
| -traffic from pods in `monitoring-ns` for all ports and protocols. |
51 |
| - |
52 |
| - |
53 |
| - |
54 |
| -### Story 3: Explicitly Delegate traffic to existing K8s Network Policy |
55 |
| - |
56 |
| -As a cluster admin, I want to explicitly delegate traffic so that it |
57 |
| -skips any remaining cluster network policies and is handled by standard |
58 |
| -namespace scoped network policies. |
59 |
| - |
60 |
| -For Example: In the diagram below egress traffic destined for the service svc-pub |
61 |
| -in namespace bar-ns-1 on TCP port 8080 is delegated to the k8s network policies |
62 |
| -implemented in foo-ns-1 and foo-ns-2. If no k8s network policies touch the |
63 |
| -delegated traffic the traffic will be allowed. |
64 |
| - |
65 |
| - |
66 |
| - |
67 |
| -### Story 4: Create and Isolate multiple tenants in a cluster |
68 |
| - |
69 |
| -As a cluster admin, I want to build tenants in my cluster that are isolated from |
70 |
| -each other by default. Tenancy may be modeled as 1:1, where 1 tenant is mapped |
71 |
| -to a single Namespace, or 1:n, where a single tenant may own more than 1 Namespace. |
72 |
| - |
73 |
| -For Example: In the diagram below two tenants (Foo and Bar) are defined such that |
74 |
| -all ingress traffic is denied to either tenant. |
75 |
| - |
76 |
| - |
77 |
| - |
78 |
| -### Story 5: Cluster Wide Default Guardrails |
79 |
| - |
80 |
| -As a cluster admin I want to change the default security model for my cluster, |
81 |
| -so that all intra-cluster traffic (except for certain essential traffic) is |
82 |
| -blocked by default. Namespace owners will need to use NetworkPolicies to |
83 |
| -explicitly allow known traffic. This follows a whitelist model which is |
84 |
| -familiar to many security administrators, and similar |
85 |
| -to how [kubernetes suggests network policy be used](https://kubernetes.io/docs/concepts/services-networking/network-policies/#default-policies). |
86 |
| - |
87 |
| -For Example: In the following diagram all Ingress traffic to every cluster |
88 |
| -resource is denied by a baseline deny rule. |
89 |
| - |
90 |
| - |
91 |
| - |
92 |
| -## Who is working on AdminNetworkPolicy? |
93 |
| - |
94 |
| -The AdminNetworkPolicy API is a |
95 |
| -[SIG-Network](https://github.com/kubernetes/community/tree/master/sig-network) |
96 |
| -project being built to improve and standardize cluster-wide security policy in k8s. In-progress implementations include Antrea (VMware) and Openshift (RedHat), |
97 |
| -If you are interested in contributing to or |
98 |
| -building an implementation using the AdminNetworkPolicy API then don’t hesitate to [get |
99 |
| -involved!](/contributing/community) |
100 |
| - |
101 |
| -[sig-network]: https://github.com/kubernetes/community/tree/master/sig-network |
| 39 | +To get started contributing please take time to read over the [contributing guidelines](https://github.com/kubernetes-sigs/network-policy-api/blob/master/CONTRIBUTING.md) as well as the [developer guide](https://github.com/kubernetes/community/blob/master/contributors/devel/README.md). You can then take a look at the open issues labelled 'good-first-issue' [here](https://github.com/kubernetes-sigs/network-policy-api/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). |
102 | 40 |
|
| 41 | +### Code of conduct |
| 42 | +Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md). |
0 commit comments