Skip to content

Commit 4b691a6

Browse files
committed
feat: add chart readmes and artifacthub links
1 parent b84ab54 commit 4b691a6

11 files changed

Lines changed: 248 additions & 22 deletions

File tree

artifacthub-repo.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

charts/app-extensions/.helmignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,3 @@ test-values/
3131
# OS files
3232
.DS_Store
3333
Thumbs.db
34-

charts/app-extensions/Chart.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ maintainers:
2323
annotations:
2424
artifacthub.io/license: Apache-2.0
2525
artifacthub.io/category: integration-delivery
26+
artifacthub.io/links: |
27+
- name: Source
28+
url: https://github.com/synkube/charts/tree/main/charts/app-extensions
29+
- name: Homepage
30+
url: https://github.com/synkube/
2631
dependencies:
2732
- name: common
2833
version: "1.0.0"

charts/app-extensions/README.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# app-extensions
2+
3+
Namespace-scoped Kubernetes resources for application teams.
4+
5+
## What It Does
6+
7+
Deploy common application resources without writing YAML:
8+
9+
- **Secrets** - Regular K8s secrets with templating
10+
- **ExternalSecrets** - Sync from Vault, Infisical, AWS SM, etc.
11+
- **SecretStores** - Namespace-scoped secret providers
12+
- **SealedSecrets** - Encrypted secrets for GitOps
13+
- **ConfigMaps** - Application configuration
14+
- **ServiceAccounts** - Pod identities with IAM annotations
15+
- **Roles & RoleBindings** - Namespace RBAC
16+
- **NetworkPolicies** - Pod traffic rules
17+
- **PersistentVolumeClaims** - Storage requests
18+
19+
## Install
20+
21+
```bash
22+
helm repo add synkube https://synkube.github.io/charts
23+
helm install my-app-ext synkube/app-extensions -f values.yaml
24+
```
25+
26+
## Quick Example
27+
28+
```yaml
29+
secrets:
30+
db-credentials:
31+
stringData:
32+
username: admin
33+
password: supersecret
34+
35+
externalSecrets:
36+
api-keys:
37+
secretStoreRef:
38+
name: vault
39+
kind: ClusterSecretStore
40+
data:
41+
- secretKey: stripe-key
42+
remoteRef:
43+
key: payments/stripe
44+
property: api_key
45+
46+
configMaps:
47+
app-config:
48+
data:
49+
settings.yaml:
50+
content: |
51+
environment: production
52+
log_level: info
53+
54+
serviceAccounts:
55+
app-sa:
56+
annotations:
57+
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/app
58+
59+
networkPolicies:
60+
allow-ingress:
61+
podSelector:
62+
matchLabels:
63+
app: myapp
64+
ingress:
65+
- from:
66+
- namespaceSelector:
67+
matchLabels:
68+
name: ingress-nginx
69+
```
70+
71+
## Requirements
72+
73+
| Dependency | Required For |
74+
|------------|--------------|
75+
| external-secrets-operator | ExternalSecrets, SecretStores |
76+
| sealed-secrets | SealedSecrets |
77+

charts/app-starter/.helmignore

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
# Patterns to ignore when building packages.
22
# This supports shell glob matching, relative path matching, and
3-
# negation (prefixed with !). Only one pattern per line.
4-
.DS_Store
3+
# temporary file patterns.
4+
5+
# Test files
6+
test-values/
7+
.test-output/
8+
59
# Common VCS dirs
610
.git/
711
.gitignore
@@ -10,20 +14,20 @@
1014
.hg/
1115
.hgignore
1216
.svn/
17+
1318
# Common backup files
1419
*.swp
1520
*.bak
1621
*.tmp
22+
*.orig
1723
*~
18-
# Various IDEs
24+
25+
# Editor/IDE files
1926
.project
2027
.idea/
2128
*.tmproj
2229
.vscode/
23-
# Custom
24-
example-sops-encrypted-secrets.yaml
25-
test-values/
26-
test-render.sh
27-
.test-output/
28-
CLEANUP_SUMMARY.md
29-
*.md
30+
31+
# OS files
32+
.DS_Store
33+
Thumbs.db

charts/app-starter/Chart.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ maintainers:
2828
annotations:
2929
artifacthub.io/license: Apache-2.0
3030
artifacthub.io/category: integration-delivery
31+
artifacthub.io/links: |
32+
- name: Source
33+
url: https://github.com/synkube/charts/tree/main/charts/app-starter
34+
- name: Homepage
35+
url: https://github.com/synkube/
3136
3237
dependencies:
3338
- name: common

charts/common/.helmignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,3 @@ test-values/
3131
# OS files
3232
.DS_Store
3333
Thumbs.db
34-

charts/common/README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# common
2+
3+
Shared Helm template library for synkube charts.
4+
5+
## What It Does
6+
7+
Provides reusable template helpers:
8+
9+
- `common.name` - Chart name (truncated to 63 chars)
10+
- `common.fullname` - Release-qualified name
11+
- `common.chart` - Chart name and version
12+
- `common.labels` - Standard Kubernetes labels
13+
- `common.selectorLabels` - Pod selector labels
14+
- `common.hasApi` - Check if CRD/API is available
15+
- `common.safeName` - DNS-1123 compliant naming
16+
- `common.resources` - Generate resource limits/requests
17+
- `common.imagePullSecrets` - Image pull secret list
18+
- `common.env` - Environment variable rendering
19+
- `common.inNamespace` - Namespace check helper
20+
- `common.configChecksum` - ConfigMap change detection
21+
22+
## Usage
23+
24+
Add as a dependency in your `Chart.yaml`:
25+
26+
```yaml
27+
dependencies:
28+
- name: common
29+
version: "1.x.x"
30+
repository: "https://synkube.github.io/charts"
31+
```
32+
33+
Then use in templates:
34+
35+
```yaml
36+
apiVersion: v1
37+
kind: ConfigMap
38+
metadata:
39+
name: {{ include "common.fullname" . }}
40+
labels:
41+
{{- include "common.labels" . | nindent 4 }}
42+
```
43+
44+
### API Availability Check
45+
46+
Conditionally render CRDs:
47+
48+
```yaml
49+
{{- if include "common.hasApi" (list "external-secrets.io/v1/ExternalSecret" .) }}
50+
apiVersion: external-secrets.io/v1
51+
kind: ExternalSecret
52+
# ...
53+
{{- end }}
54+
```
55+
56+
Skip check for CI/testing:
57+
58+
```yaml
59+
global:
60+
skipApiCheck: true
61+
```

charts/platform-extensions/.helmignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,3 @@ test-values/
3131
# OS files
3232
.DS_Store
3333
Thumbs.db
34-

charts/platform-extensions/Chart.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ maintainers:
2727
annotations:
2828
artifacthub.io/license: Apache-2.0
2929
artifacthub.io/category: integration-delivery
30+
artifacthub.io/links: |
31+
- name: Source
32+
url: https://github.com/synkube/charts/tree/main/charts/platform-extensions
33+
- name: Homepage
34+
url: https://github.com/synkube/
3035
dependencies:
3136
- name: common
3237
version: "1.0.0"

0 commit comments

Comments
 (0)