Skip to content

Commit

Permalink
make charts
Browse files Browse the repository at this point in the history
  • Loading branch information
HarrisonWAffel committed Apr 18, 2024
1 parent 391a415 commit 525eaca
Show file tree
Hide file tree
Showing 21 changed files with 1,030 additions and 460 deletions.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
annotations:
catalog.cattle.io/hidden: "true"
catalog.cattle.io/os: windows
catalog.rancher.io/certified: rancher
catalog.rancher.io/namespace: cattle-monitoring-system
catalog.rancher.io/release-name: rancher-windows-exporter
apiVersion: v1
appVersion: 0.0.2
description: Sets up monitoring metrics from Windows nodes via Prometheus windows-exporter
apiVersion: v2
appVersion: 0.25.1
description: A Helm chart for prometheus windows-exporter
home: https://github.com/prometheus-community/windows_exporter/
keywords:
- windows-exporter
- windows
- prometheus
- exporter
maintainers:
- email: arvind.iyengar@rancher.com
name: aiyengar2
- email: github@jkroepke.de
name: jkroepke
name: windowsExporter
sources:
- https://github.com/prometheus-community/windows_exporter/
type: application
version: 0.1.1
version: 0.3.1
Original file line number Diff line number Diff line change
@@ -1,17 +1,42 @@
# rancher-windows-exporter
# Prometheus `Windows Exporter`

A Rancher chart based on the [prometheus-community/windows-exporter](https://github.com/prometheus-community/windows_exporter) project (previously called wmi-exporter) that sets up a DaemonSet of clients that can scrape windows-exporter metrics from Windows nodes on a Kubernetes cluster.
Prometheus exporter for hardware and OS metrics exposed by Windows kernels, written in Go with pluggable metric collectors.

A [Prometheus Operator](https://github.com/coreos/prometheus-operator) ServiceMonitor CR and PrometheusRule CR are also created by this chart to collect metrics and add some recording rules to map `windows_` series with their OS-agnostic counterparts.
This chart bootstraps a prometheus [`Windows Exporter`](http://github.com/prometheus-community/windows_exporter) daemonset on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

## Node Requirements
## Get Repository Info

Since Windows does not support privileged pods, this chart expects a Named Pipe (`\\.\pipe\rancher_wins`) to exist on the Windows host that allows containers to communicate with the host. This is done by deploying a [rancher/wins](https://github.com/rancher/wins) server on the host.
```console
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
```

The image used by the chart, [windows_exporter-package](https://github.com/rancher/windows_exporter-package), is configured to create a wins client that communicates with the wins server, alongside a running copy of a particular version of [windows-exporter](https://github.com/prometheus-community/windows_exporter). Through the wins client and wins server, the windows-exporter is able to communicate directly with the Windows host to collect metrics and expose them.
_See [`helm repo`](https://helm.sh/docs/helm/helm_repo/) for command documentation._

If the cluster you are installing this chart on is a custom cluster that was created via RKE1 with Windows Support enabled, your nodes should already have the wins server running; this should have been added as part of [the bootstrapping process for adding the Windows node onto your RKE1 cluster](https://github.com/rancher/rancher/blob/master/package/windows/bootstrap.ps1).
## Install Chart

## Configuration
```console
helm install [RELEASE_NAME] prometheus-community/prometheus-windows-exporter
```

See [rancher-monitoring](https://github.com/rancher/charts/tree/gh-pages/packages/rancher-monitoring) for an example of how this chart can be used.
_See [configuration](#configuring) below._

_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._

## Uninstall Chart

```console
helm uninstall [RELEASE_NAME]
```

This removes all the Kubernetes components associated with the chart and deletes the release.

_See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation._

## Configuring

See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](./values.yaml), or run these configuration commands:

```console
helm show values prometheus-community/prometheus-windows-exporter
```

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
$ErrorActionPreference = 'Continue'

function CheckFirewallRuleError {
# We hit an error. This can happen for a number of reasons, including if the rule already exists
if ($error[0]) {
if (($error[0].Exception.NativeErrorCode) -and ($error[0].Exception.NativeErrorCode.ToString() -eq "AlreadyExists")) {
# Previous versions of monitoring may have already created this Firewall Rule
# Because of this, if the rule alreadys exists there is no need to delete and recreate it.
Write-Host "Detected Existing Firewall Rule, Nothing To Do"
} else {
Write-Host "Error Encountered Setting Up Required Firewall Rule"
$error[0].Exception
exit 1
}
}
}

Write-Host "Attempting To Configure Firewall Rules For Ports 9796, 10250"

# This is the exact same firewall rule that has historically been created by rancher-wins
# https://github.com/rancher/wins/blob/91f670c47f19c6d9fe97d8f66a695d3081ad994f/pkg/apis/process_service_mgmt.go#L149
New-NetFirewallRule -DisplayName rancher-wins-windows-exporter-TCP-9796 -Name rancher-wins-windows-exporter-TCP-9796 -Action Allow -Protocol TCP -LocalPort 9796 -Enabled True -PolicyStore ActiveStore
CheckFirewallRuleError
Write-Host "Windows Node Exporter Firewall Rule Successfully Created"

# This rule is required in order to have the Rancher UI display node metrics in the 'Nodes' tab of the cluster explorer
New-NetFirewallRule -DisplayName rancher-wins-windows-exporter-TCP-10250 -Name rancher-wins-windows-exporter-TCP-10250 -Action Allow -Protocol TCP -LocalPort 10250 -Enabled True -PolicyStore ActiveStore
CheckFirewallRuleError
Write-Host "Windows Prometheus Metrics Firewall Rule Successfully Created"

Write-Host "All Firewall Rules Successfully Configured"

This file was deleted.

This file was deleted.

Loading

0 comments on commit 525eaca

Please sign in to comment.