Skip to content

Commit 98915b3

Browse files
Felsiya Vasanthi KFelsiya Vasanthi K
authored andcommitted
Added spegel-0.0.30
1 parent 57f113e commit 98915b3

File tree

18 files changed

+2167
-0
lines changed

18 files changed

+2167
-0
lines changed

packs/spegel-0.0.30/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Description
2+
Spegel, mirror in Swedish, is a stateless cluster local OCI registry mirror.
3+
Spegel is for you if you are looking to do any of the following:
4+
* Locally cache images from external registries with no explicit configuration.
5+
* Avoid cluster failure during external registry downtime.
6+
* Improve image pull speed and pod startup time by pulling images from the local cache first.
7+
* Avoid rate-limiting when pulling images from external registries (e.g. Docker Hub).
8+
* Decrease egressing traffic outside of the clusters network.
9+
* Increase image pull efficiency in edge node deployments.
10+
11+
# Kubernetes versions supported:
12+
Above 1.21
13+
14+
# Constraints:
15+
Currently, Spegel only works with Containerd, in the future other container runtime interfaces may be supported. Spegel relies on [Containerd registry mirroring](https://github.com/containerd/containerd/blob/main/docs/hosts.md#cri) to route requests to the correct destination. This requires Containerd to be properly configured, if it is not Spegel will exit. First of all the registry config path needs to be set, this is not done by default in Containerd. Second of all discarding unpacked layers cannot be enabled. Some Kubernetes flavors come with this setting out of the box, while others do not. Spegel is not able to write this configuration for you as it requires a restart of Containerd to take effect.
16+
17+
```
18+
version = 2
19+
20+
imports = ["/etc/containerd/conf.d/*.toml"]
21+
22+
[plugins]
23+
[plugins."io.containerd.grpc.v1.cri"]
24+
sandbox_image = "registry.k8s.io/pause:3.9"
25+
[plugins."io.containerd.grpc.v1.cri".containerd]
26+
discard_unpacked_layers = false
27+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
28+
runtime_type = "io.containerd.runc.v2"
29+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
30+
SystemdCgroup = true
31+
[plugins."io.containerd.grpc.v1.cri".registry]
32+
config_path = "/etc/containerd/certs.d"
33+
```
34+
35+
# Cloud types supported:
36+
Everything except GKE
37+
38+
# References:
39+
- https://github.com/spegel-org/spegel
9.79 KB
Binary file not shown.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
annotations:
2+
artifacthub.io/category: integration-delivery
3+
artifacthub.io/license: MIT
4+
artifacthub.io/operator: "false"
5+
artifacthub.io/prerelease: "false"
6+
apiVersion: v2
7+
appVersion: v0.0.30
8+
description: Stateless cluster local OCI registry mirror.
9+
name: spegel
10+
type: application
11+
version: v0.0.30
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Spegel
2+
3+
Stateless cluster local OCI registry mirror.
4+
5+
Read the [getting started](https://spegel.dev/docs/getting-started/) guide to deploy Spegel.
6+
7+
## Values
8+
9+
| Key | Type | Default | Description |
10+
|-----|------|---------|-------------|
11+
| affinity | object | `{}` | Affinity settings for pod assignment. |
12+
| clusterDomain | string | `"cluster.local."` | Domain configured for service domain names. |
13+
| commonLabels | object | `{}` | Common labels to apply to all rendered resources. |
14+
| fullnameOverride | string | `""` | Overrides the full name of the chart. |
15+
| grafanaDashboard.annotations | object | `{}` | Annotations that ConfigMaps can have to get configured in Grafana, See: sidecar.dashboards.folderAnnotation for specifying the dashboard folder. https://github.com/grafana/helm-charts/tree/main/charts/grafana |
16+
| grafanaDashboard.enabled | bool | `false` | If true creates a Grafana dashboard. |
17+
| grafanaDashboard.sidecarLabel | string | `"grafana_dashboard"` | Label that ConfigMaps should have to be loaded as dashboards. |
18+
| grafanaDashboard.sidecarLabelValue | string | `"1"` | Label value that ConfigMaps should have to be loaded as dashboards. |
19+
| image.digest | string | `""` | Image digest. |
20+
| image.pullPolicy | string | `"IfNotPresent"` | Image Pull Policy. |
21+
| image.repository | string | `"ghcr.io/spegel-org/spegel"` | Image repository. |
22+
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
23+
| imagePullSecrets | list | `[]` | Image Pull Secrets |
24+
| nameOverride | string | `""` | Overrides the name of the chart. |
25+
| namespaceOverride | string | `""` | Overrides the namespace where spegel resources are installed. |
26+
| nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node selector for pod assignment. |
27+
| podAnnotations | object | `{}` | Annotations to add to the pod. |
28+
| podSecurityContext | object | `{}` | Security context for the pod. |
29+
| priorityClassName | string | `"system-node-critical"` | Priority class name to use for the pod. |
30+
| resources | object | `{}` | Resource requests and limits for the Spegel container. |
31+
| revisionHistoryLimit | int | `10` | The number of old history to retain to allow rollback. |
32+
| securityContext | object | `{}` | Security context for the Spegel container. |
33+
| service.metrics.port | int | `9090` | Port to expose the metrics via the service. |
34+
| service.registry.hostPort | int | `30020` | Local host port to expose the registry. |
35+
| service.registry.nodeIp | string | `""` | Override the NODE_ID environment variable. It defaults to the field status.hostIP |
36+
| service.registry.nodePort | int | `30021` | Node port to expose the registry via the service. |
37+
| service.registry.port | int | `5000` | Port to expose the registry via the service. |
38+
| service.registry.topologyAwareHintsEnabled | bool | `true` | If true adds topology aware hints annotation to node port service. |
39+
| service.router.port | int | `5001` | Port to expose the router via the service. |
40+
| serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
41+
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template. |
42+
| serviceMonitor.enabled | bool | `false` | If true creates a Prometheus Service Monitor. |
43+
| serviceMonitor.interval | string | `"60s"` | Prometheus scrape interval. |
44+
| serviceMonitor.labels | object | `{}` | Service monitor specific labels for prometheus to discover servicemonitor. |
45+
| serviceMonitor.metricRelabelings | list | `[]` | List of relabeling rules to apply to the samples before ingestion. |
46+
| serviceMonitor.relabelings | list | `[]` | List of relabeling rules to apply the target’s metadata labels. |
47+
| serviceMonitor.scrapeTimeout | string | `"30s"` | Prometheus scrape interval timeout. |
48+
| spegel.additionalMirrorRegistries | list | `[]` | Additional target mirror registries other than Spegel. |
49+
| spegel.appendMirrors | bool | `false` | When true existing mirror configuration will be appended to instead of replaced. |
50+
| spegel.containerdContentPath | string | `"/var/lib/containerd/io.containerd.content.v1.content"` | Path to Containerd content store.. |
51+
| spegel.containerdMirrorAdd | bool | `true` | If true Spegel will add mirror configuration to the node. |
52+
| spegel.containerdNamespace | string | `"k8s.io"` | Containerd namespace where images are stored. |
53+
| spegel.containerdRegistryConfigPath | string | `"/etc/containerd/certs.d"` | Path to Containerd mirror configuration. |
54+
| spegel.containerdSock | string | `"/run/containerd/containerd.sock"` | Path to Containerd socket. |
55+
| spegel.logLevel | string | `"INFO"` | Minimum log level to output. Value should be DEBUG, INFO, WARN, or ERROR. |
56+
| spegel.mirrorResolveRetries | int | `3` | Max ammount of mirrors to attempt. |
57+
| spegel.mirrorResolveTimeout | string | `"20ms"` | Max duration spent finding a mirror. |
58+
| spegel.registries | list | `["https://cgr.dev","https://docker.io","https://ghcr.io","https://quay.io","https://mcr.microsoft.com","https://public.ecr.aws","https://gcr.io","https://registry.k8s.io","https://k8s.gcr.io","https://lscr.io"]` | Registries for which mirror configuration will be created. |
59+
| spegel.resolveLatestTag | bool | `true` | When true latest tags will be resolved to digests. |
60+
| spegel.resolveTags | bool | `true` | When true Spegel will resolve tags to digests. |
61+
| tolerations | list | `[{"key":"CriticalAddonsOnly","operator":"Exists"},{"effect":"NoExecute","operator":"Exists"},{"effect":"NoSchedule","operator":"Exists"}]` | Tolerations for pod assignment. |
62+
| updateStrategy | object | `{}` | An update strategy to replace existing pods with new pods. |
63+
| verticalPodAutoscaler.controlledResources | list | `[]` | List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory |
64+
| verticalPodAutoscaler.controlledValues | string | `"RequestsAndLimits"` | Specifies which resource values should be controlled: RequestsOnly or RequestsAndLimits. |
65+
| verticalPodAutoscaler.enabled | bool | `false` | If true creates a Vertical Pod Autoscaler. |
66+
| verticalPodAutoscaler.maxAllowed | object | `{}` | Define the max allowed resources for the pod |
67+
| verticalPodAutoscaler.minAllowed | object | `{}` | Define the min allowed resources for the pod |
68+
| verticalPodAutoscaler.recommenders | list | `[]` | Recommender responsible for generating recommendation for the object. List should be empty (then the default recommender will generate the recommendation) or contain exactly one recommender. |
69+
| verticalPodAutoscaler.updatePolicy.minReplicas | int | `2` | Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction |
70+
| verticalPodAutoscaler.updatePolicy.updateMode | string | `"Auto"` | Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto". |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Spegel
2+
3+
{{ template "chart.description" . }}
4+
5+
Read the [getting started](https://spegel.dev/docs/getting-started/) guide to deploy Spegel.
6+
7+
{{ template "chart.valuesSection" . }}

0 commit comments

Comments
 (0)