Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 12 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,30 @@
This repo contains various documents related to network observability (a.k.a. netobserv):

### Repositories
* [network-observability-operator](https://github.com/netobserv/network-observability-operator)
* [netobserv-operator](https://github.com/netobserv/network-observability-operator)
OpenShift / Kubernetes operator for network observability.
This operator will deloy the following components:
* [goflow2-kube-enricher](https://github.com/netobserv/goflow2-kube-enricher)
This component implements the following libraries:
* [loki-client-go](https://github.com/netobserv/loki-client-go)
An HTTP client to send logs to Loki server
* [goflow2-loki-exporter](https://github.com/netobserv/goflow2-loki-exporter)
A Loki exporter plugin
* [network-observability-console-plugin](https://github.com/netobserv/network-observability-console-plugin)
Network Observability plugin for the Openshift Console
* [nflow-generator](https://github.com/netobserv/nflow-generator)
A fake legacy v5 netflow generator
* [eBPF Agent](https://github.com/netobserv/netobserv-ebpf-agent): An eBPF agent that captures and exports network flows.
* [flowlogs-pipeline](https://github.com/netobserv/flowlogs-pipeline): A configurable flow collector, enricher and metrics producer.
* [netobserv-plugin](https://github.com/netobserv/network-observability-console-plugin):
The NetObserv plugin for the Openshift Console.
* [nflow-generator](https://github.com/netobserv/nflow-generator):
A fake legacy v5 netflow generator
* etc.

### Get started
The easiest way to get started is to use the [Network Observability Operator](https://github.com/netobserv/network-observability-operator) that will deploy all the components for you.
The easiest way to get started is to use the [NetObserv Operator](https://github.com/netobserv/network-observability-operator) that will deploy all the components for you. It is available via [OLM](https://operatorhub.io/operator/netobserv-operator).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also plan to rename github repos ?
https://github.com/netobserv/network-observability-operator

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fear that would be too much hassle... (and same for quay)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems that github has redirect capabilities for both pages / git commands:
https://docs.github.com/en/repositories/creating-and-managing-repositories/renaming-a-repository

I agree we should not do that if it impacts too much things behind the scene but we may give a try for consistency


You can either:
- [Deploy an existing image](https://github.com/netobserv/network-observability-operator#deploy-an-existing-image)
- [Build from sources](https://github.com/netobserv/network-observability-operator#build--push--deploy)

### Development

You will need [Kind](./kind.md) or [OpenShift](./openshift.md) with ovn-kubernetes configured to get network flows.
For quick development on OCP use [this guide](./noo_dev_ocp.md)
You will need a Kubernetes cluster, such as [Kind](./kind.md) or [OpenShift](./openshift.md).

If you don't need the entire stack, you can just [check components](#repositories) above.

### Sample applications
### Other links

[sample_apps.md](./sample_apps.md): a few suggestions to generate traffic, useful for testing NetObserv.
- [Sample apps](./sample_apps.md): a few suggestions to generate traffic, useful for testing NetObserv.
2 changes: 1 addition & 1 deletion examples/distributed-loki/1-prerequisites/secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: v1
kind: Secret
metadata:
name: loki-distributed
namespace: network-observability
namespace: netobserv
type: Opaque
stringData:
ACCESS_KEY_ID: XXXXXXXXXXXXXXXXXXXX
Expand Down
2 changes: 1 addition & 1 deletion examples/kowl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ kowl:
kafka:
brokers:
# Set your bootstrap url. Kowl does domain name validation so be sure to pick a valid url which is covered in the subject alternative name of the certificate of the bootsrap endpoint (e.g. no <namespace>.svc.cluster.local address).
- kafka-cluster-kafka-bootstrap.network-observability
- kafka-cluster-kafka-bootstrap.netobserv
tls:
enabled: true
caFilepath: /etc/strimzi/ca/ca.crt
Expand Down
12 changes: 6 additions & 6 deletions examples/metrics/monitoring.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ metadata:
labels:
app: flowlogs-pipeline
name: flowlogs-pipeline-metrics
namespace: network-observability
namespace: netobserv
spec:
ports:
- port: 9102
Expand All @@ -28,15 +28,15 @@ apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: flowlogs-pipeline
namespace: network-observability
namespace: netobserv
spec:
endpoints:
- interval: 15s
port: metrics
scheme: http
namespaceSelector:
matchNames:
- network-observability
- netobserv
selector:
matchLabels:
app: flowlogs-pipeline
Expand All @@ -45,7 +45,7 @@ apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: netobserv-console-plugin
namespace: network-observability
namespace: netobserv
spec:
endpoints:
- interval: 15s
Expand All @@ -55,7 +55,7 @@ spec:
insecureSkipVerify: true
namespaceSelector:
matchNames:
- network-observability
- netobserv
selector:
matchLabels:
app: network-observability-plugin
app: netobserv-plugin
6 changes: 3 additions & 3 deletions kafka.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Simply install it and create a "Kafka" instance in `default` namespace.
You can use the following command to deploy the strimzi operator :

```
export NAMESPACE=network-observability
export NAMESPACE=netobserv
kubectl create -f "https://strimzi.io/install/latest?namespace=$NAMESPACE" -n $NAMESPACE
```

Expand Down Expand Up @@ -68,8 +68,8 @@ You can use [kfk](https://github.com/systemcraftsman/strimzi-kafka-cli), a CLI f
To create a new user with public/private keys for mTLS, and get its secrets:

```bash
kfk users --create --user flp-kafka --authentication-type tls -n network-observability -c kafka-cluster
kubectl describe secret/flp-kafka -n network-observability
kfk users --create --user flp-kafka --authentication-type tls -n netobserv -c kafka-cluster
kubectl describe secret/flp-kafka -n netobserv
```

To create a terminal-based producer and consumer with mTLS, refer to [this page](https://github.com/systemcraftsman/strimzi-kafka-cli/tree/main/examples/2_tls_authentication).
Expand Down
10 changes: 5 additions & 5 deletions loki_distributed.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ Check [official examples](https://grafana.com/docs/loki/latest/storage/#examples
## Deploy

Ensure [storage configuration](#storage-configuration) is up to date.
Run the following command to apply all yamls at once in `network-observability` namespace:
`kubectl apply -f ./examples/distributed-loki/ -n network-observability --recursive`
Run the following command to apply all yamls at once in `netobserv` namespace:
`kubectl apply -f ./examples/distributed-loki/ -n netobserv --recursive`

This will create all the components and services described above.

Expand All @@ -93,10 +93,10 @@ The first argument is the bucket name, second is the AWS region. Example:

## Network Observability Operator

To connect NOO with this config, you will have to update the `loki` section with the following urls assuming you used `network-observability` namespace:
To connect NOO with this config, you will have to update the `loki` section with the following urls assuming you used `netobserv` namespace:

```yaml
loki:
url: 'http://loki-distributed-distributor.network-observability.svc.cluster.local:3100/'
querierUrl: 'http://loki-distributed-query-frontend.network-observability.svc.cluster.local:3100/'
url: 'http://loki-distributed-distributor.netobserv.svc.cluster.local:3100/'
querierUrl: 'http://loki-distributed-query-frontend.netobserv.svc.cluster.local:3100/'
```
58 changes: 0 additions & 58 deletions noo_dev_ocp.md

This file was deleted.

49 changes: 0 additions & 49 deletions openshift.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# Openshift

* [Deploy using OpenShift Container Platform](#deploy-using-openshift-container-platform)
* [Deploy using Cluster Bot](#deploy-using-cluster-bot)

## Deploy using OpenShift Container Platform

The easiest way to get Openshift installed is using [OpenShift Container Platform](https://docs.openshift.com/container-platform/4.8/installing/index.html)
Expand All @@ -26,9 +23,6 @@ Example for GCP:

This allow you to get more ressources in order to deploy Loki for example.

### Set OVN-Kubernetes as default CNI network provider on Openshift
This is mandatory for kube-enricher used in network-observability-operator.

#### Using OCP
You can [customize your OCP installation](https://docs.openshift.com/container-platform/4.8/installing/installing_aws/installing-aws-network-customizations.html#installation-initializing_installing-aws-network-customizations) using `install-config.yaml` file.

Expand All @@ -37,49 +31,6 @@ Generate the configuration using:
openshift-install create install-config --dir=<installation_directory>
```

Add [network configuration parameters](https://docs.openshift.com/container-platform/4.8/installing/installing_aws/installing-aws-network-customizations.html#installation-configuration-parameters-network_installing-aws-network-customizations)

For example:
```yaml
networking:
networkType: OVNKubernetes
```

#### Migrate running cluster
Follow the [official guide](https://docs.openshift.com/container-platform/4.8/networking/ovn_kubernetes_network_provider/migrate-from-openshift-sdn.html#nw-ovn-kubernetes-migration_migrate-from-openshift-sdn) for OVNK networkType migration according to your Openshift version.

This can take some time and you will need ssh access or infrastructure provider management portal to restart each nodes so you should consider [using OCP install-config.yaml](####using-ocp)

## Deploy using Cluster Bot

Cluster Bot is a Slack bot that allows easily deploying short-lived clusters (auto-removed in ~2
hours) with concrete in-development branches of several Openshift components.

To use it, just add the `cluster-bot` app in your Slack (usually, in the Apps dropdown from the
Slack left panel) and type `help` in the message Window. It will show you several options.

The deployment takes around 30 minutes. When it finishes, `cluster-bot` provides you the contents
of the `KUBECONFIG` file as well as the `kubeadmin` password.

### Examples

Launch the last 4.x stable version with OVNKubernetes CNI:
`launch 4-stable ovn`

Launch the latest stable version of OpenShift, but replacing the bundled Console and CNO by the
contents of Pull Requests `#9953` and `#1231`, respectively:

```
launch openshift/console#9953,openshift/cluster-network-operator#1231
```

Launch an in-development 4.10-ci version of OpenShift, replacing the `master` branch of the
Console by the Pull Request `#9953`:

```
launch 4.10-ci,openshift/console#9953
```

## Metrics

NetObserv comes with a bunch of metrics, however they are not scraped by default by OpenShift Cluster Monitoring (the OpenShift cluster Prometheus that is used for infra monitoring).
Expand Down