Skip to content

Commit d9b1b4a

Browse files
author
Sunil Thaha
committed
docs: add helm chart oci registry documentation
Add documentation for Kepler Helm chart deployment and management using OCI registry at quay.io. This includes: - Update installation.md with OCI registry installation methods - Add new helm-updates.md guide covering: * Manual updates and version management * GitOps integration (ArgoCD and Flux) * Rolling update strategies and rollback procedures * Monitoring and troubleshooting - Rename docs/index.md to README.md for better GitHub display - Update documentation index with new Helm updates guide Signed-off-by: Sunil Thaha <[email protected]>
1 parent 99d8431 commit d9b1b4a

File tree

3 files changed

+218
-17
lines changed

3 files changed

+218
-17
lines changed

docs/index.md renamed to docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Welcome to the Kepler documentation. Kepler is a Prometheus exporter that measur
99
Documentation for users deploying and operating Kepler:
1010

1111
- [Installation Guide](user/installation.md) - How to install and deploy Kepler
12+
- [Helm Updates Guide](user/helm-updates.md) - Managing Kepler updates and rolling deployments
1213
- [Configuration Guide](user/configuration.md) - Configuring Kepler for your environment
1314
- [Metrics Reference](user/metrics.md) - Available Prometheus metrics exported by Kepler
1415

docs/user/helm-updates.md

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
# Kepler Helm Chart Updates and Rolling Deployments
2+
3+
This guide covers how to manage updates and rolling deployments for Kepler using Helm charts published to the OCI registry.
4+
5+
## Chart Repository
6+
7+
Kepler Helm charts are published to:
8+
9+
- **OCI Registry**: `oci://quay.io/sustainable_computing_io/charts/kepler`
10+
11+
## Installation Methods
12+
13+
### Direct OCI Installation (Recommended)
14+
15+
OCI registries cannot be added as traditional Helm repositories, so use direct installation:
16+
17+
```bash
18+
# Install specific version
19+
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
20+
--version 0.11.1 \
21+
--namespace kepler \
22+
--create-namespace
23+
24+
# Install latest version (omit --version)
25+
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
26+
--namespace kepler \
27+
--create-namespace
28+
```
29+
30+
## Manual Updates
31+
32+
### Check for New Versions
33+
34+
Since OCI registries don't support traditional repository browsing, check for new versions using these methods:
35+
36+
```bash
37+
# Show chart information for specific version
38+
helm show chart oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2
39+
40+
# Check quay.io web interface for available tags
41+
# Visit: https://quay.io/repository/sustainable_computing_io/charts?tab=tags
42+
43+
# Or use helm pull to check if version exists
44+
helm pull oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --dry-run
45+
```
46+
47+
### Upgrade to Specific Version
48+
49+
```bash
50+
# Upgrade to specific version
51+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --namespace kepler
52+
53+
# Upgrade with custom values
54+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --namespace kepler --values values.yaml
55+
56+
# Upgrade and wait for rollout to complete
57+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --namespace kepler --wait --timeout=300s
58+
```
59+
60+
### Upgrade to Latest Version
61+
62+
```bash
63+
# Upgrade to latest (omit --version)
64+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --namespace kepler
65+
66+
# Verify upgrade
67+
helm status kepler --namespace kepler
68+
```
69+
70+
### Rollback if Needed
71+
72+
```bash
73+
# List release history
74+
helm history kepler --namespace kepler
75+
76+
# Rollback to previous version
77+
helm rollback kepler --namespace kepler
78+
79+
# Rollback to specific revision
80+
helm rollback kepler 2 --namespace kepler
81+
```
82+
83+
## Update Strategies
84+
85+
### Conservative Updates (Recommended for Production)
86+
87+
Pin to specific patch versions and test before upgrading:
88+
89+
```bash
90+
# Pin to specific version in production
91+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.1 --namespace kepler
92+
93+
# Test new version in staging first
94+
helm install kepler-staging oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --namespace kepler-staging
95+
96+
# After validation, upgrade production
97+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 --namespace kepler
98+
```
99+
100+
## Monitoring Updates
101+
102+
### Check Update Status
103+
104+
```bash
105+
# Watch deployment progress
106+
kubectl rollout status daemonset/kepler -n kepler
107+
108+
# Check pod status
109+
kubectl get pods -n kepler -w
110+
111+
# View recent events
112+
kubectl get events -n kepler --sort-by='.lastTimestamp'
113+
```
114+
115+
### Verify Metrics After Update
116+
117+
```bash
118+
# Port forward to access metrics
119+
kubectl port-forward -n kepler svc/kepler 28282:28282
120+
121+
# Test metrics endpoint
122+
curl http://localhost:28282/metrics | grep kepler_build_info
123+
124+
# Check for expected metrics
125+
curl -s http://localhost:28282/metrics | grep -E "(kepler_node_cpu_watts|kepler_container_cpu_watts)"
126+
```
127+
128+
## Troubleshooting Updates
129+
130+
### Failed Updates
131+
132+
```bash
133+
# Check release status
134+
helm status kepler -n kepler
135+
136+
# View release history
137+
helm history kepler -n kepler
138+
139+
# Check for pending pods
140+
kubectl get pods -n kepler | grep -E "(Pending|ContainerCreating|CrashLoopBackOff)"
141+
142+
# View pod logs
143+
kubectl logs -n kepler -l app.kubernetes.io/name=kepler --tail=100
144+
```
145+
146+
### Recovery Procedures
147+
148+
```bash
149+
# Rollback to previous working version
150+
helm rollback kepler -n kepler
151+
152+
# Force recreation of DaemonSet if stuck
153+
kubectl delete daemonset kepler -n kepler
154+
helm upgrade kepler kepler/kepler --version 0.11.1 -n kepler
155+
156+
# Emergency: use source charts if OCI registry is unavailable
157+
helm upgrade kepler manifests/helm/kepler/ -n kepler
158+
```
159+
160+
## Version Compatibility
161+
162+
| Kepler Version | Kubernetes Version | Helm Version | Notes |
163+
|----------------|--------------------|--------------|----------------------|
164+
| 0.11.x | 1.20+ | 3.8+ | OCI registry support |
165+
| 0.10.x | 1.19+ | 3.0+ | Legacy installation |
166+
167+
## Best Practices
168+
169+
1. **Test Updates**: Always test in staging environment first
170+
2. **Gradual Rollouts**: Use rolling updates with conservative settings
171+
3. **Monitor Metrics**: Verify metrics collection after updates
172+
4. **Backup Values**: Keep your custom `values.yaml` in version control
173+
5. **Version Pinning**: Pin specific versions in production
174+
6. **Health Checks**: Configure proper readiness and liveness probes
175+
7. **Alerts**: Set up monitoring for failed deployments
176+
177+
## Getting Help
178+
179+
- **Chart Issues**: [Kepler GitHub Issues](https://github.com/sustainable-computing-io/kepler/issues)
180+
- **Registry Issues**: [Quay.io Support](https://access.redhat.com/support)
181+
- **Helm Issues**: [Helm Documentation](https://helm.sh/docs/)

docs/user/installation.md

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,27 @@ This guide covers different methods to install and run Kepler (Kubernetes-based
1717
- Helm 3.0+
1818
- Kubernetes cluster with kubectl configured
1919

20-
#### Install from Source
20+
#### Install from OCI Registry (Recommended)
21+
22+
Install directly from the OCI registry (OCI registries cannot be added as traditional Helm repositories):
23+
24+
```bash
25+
# Install specific version
26+
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
27+
--version 0.11.1 \
28+
--namespace kepler \
29+
--create-namespace
30+
31+
# Install latest version (omit --version)
32+
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
33+
--namespace kepler \
34+
--create-namespace
35+
```
36+
37+
#### Install from Source (Development/Testing)
38+
39+
> **NOTE**: This method is intended for development and testing purposes.
40+
> For production deployments, use the OCI registry method above.
2141
2242
```bash
2343
# Clone the repository
@@ -31,21 +51,6 @@ helm install kepler manifests/helm/kepler/ \
3151
--set namespace.create=false
3252
```
3353

34-
#### Install from Release (Future)
35-
36-
```bash
37-
# Add Kepler Helm repository (once published)
38-
helm repo add kepler https://sustainable-computing-io.github.io/kepler
39-
40-
# Update repository
41-
helm repo update
42-
43-
# Install Kepler
44-
helm install kepler kepler/kepler \
45-
--namespace kepler \
46-
--create-namespace
47-
```
48-
4954
#### Customizing the Installation
5055

5156
Create a `values.yaml` file to customize the installation:
@@ -80,11 +85,19 @@ serviceMonitor:
8085
Install with custom values:
8186
8287
```bash
88+
# From source
8389
helm install kepler manifests/helm/kepler/ \
8490
--namespace kepler \
8591
--create-namespace \
8692
--set namespace.create=false \
8793
--values values.yaml
94+
95+
# From OCI registry
96+
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
97+
--version 0.11.1 \
98+
--namespace kepler \
99+
--create-namespace \
100+
--values values.yaml
88101
```
89102

90103
#### Helm Management Commands
@@ -96,9 +109,15 @@ helm status kepler -n kepler
96109
# List releases
97110
helm list -n kepler
98111

99-
# Upgrade release
112+
# Upgrade release from source
100113
helm upgrade kepler manifests/helm/kepler/ -n kepler
101114

115+
# Upgrade release from OCI registry to specific version
116+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler --version 0.11.2 -n kepler
117+
118+
# Upgrade to latest version from OCI registry
119+
helm upgrade kepler oci://quay.io/sustainable_computing_io/charts/kepler -n kepler
120+
102121
# Uninstall
103122
helm uninstall kepler -n kepler
104123
```

0 commit comments

Comments
 (0)