|
1 | | -# All features enabled values for CI testing |
2 | | -# This file tests all configuration options and features of the Tinyauth Helm chart |
| 1 | +# CI testing values for tinyauth Helm chart |
| 2 | +# Minimal setup designed to run fast and reliably on a kind cluster |
3 | 3 |
|
4 | | -replicaCount: 2 |
| 4 | +replicaCount: 1 |
5 | 5 |
|
6 | 6 | image: |
7 | 7 | repository: ghcr.io/steveiliop56/tinyauth |
8 | | - pullPolicy: Always |
| 8 | + pullPolicy: IfNotPresent |
9 | 9 | tag: "latest" |
10 | 10 |
|
11 | | -imagePullSecrets: |
12 | | - - name: regcred |
13 | | - |
14 | | -nameOverride: "tinyauth-test" |
15 | | -fullnameOverride: "tinyauth-full-test" |
16 | | - |
17 | 11 | serviceAccount: |
18 | 12 | create: true |
19 | 13 | automount: true |
20 | 14 | annotations: |
21 | | - example.com/annotation: "test-value" |
| 15 | + example.com/annotation: "ci-test" |
22 | 16 | name: "tinyauth-sa" |
23 | 17 |
|
24 | 18 | podAnnotations: |
25 | | - example.com/pod-annotation: "test-pod" |
| 19 | + example.com/pod-annotation: "ci-test" |
26 | 20 |
|
27 | 21 | podLabels: |
28 | 22 | environment: "ci" |
29 | | - team: "platform" |
30 | | - |
31 | | -podSecurityContext: |
32 | | - fsGroup: 2000 |
33 | | - runAsNonRoot: true |
34 | | - runAsUser: 1000 |
35 | | - |
36 | | -securityContext: |
37 | | - capabilities: |
38 | | - drop: |
39 | | - - ALL |
40 | | - readOnlyRootFilesystem: false |
41 | | - runAsNonRoot: true |
42 | | - runAsUser: 1000 |
43 | 23 |
|
44 | 24 | service: |
45 | 25 | type: ClusterIP |
46 | 26 | port: 80 |
47 | 27 |
|
48 | | -# Tinyauth Configuration - All options enabled |
| 28 | +# Tinyauth Configuration |
49 | 29 | tinyauth: |
50 | | - general: |
51 | | - address: "0.0.0.0" |
52 | | - appTitle: "Tinyauth CI Test" |
53 | | - appUrl: "https://tinyauth.example.com" |
54 | | - backgroundImage: "/custom-background.jpg" |
55 | | - databasePath: "/data/tinyauth.db" |
56 | | - disableAnalytics: true |
57 | | - disableResources: false |
58 | | - disableUiWarnings: true |
59 | | - forgotPasswordMessage: "Contact admin@example.com for password reset" |
60 | | - logLevel: "debug" |
61 | | - loginMaxRetries: 3 |
62 | | - loginTimeout: 600 |
63 | | - oauthAutoRedirect: "github" |
64 | | - oauthWhitelist: "user1@example.com,user2@example.com,admin@example.com" |
| 30 | + appUrl: "https://tinyauth.example.com" |
| 31 | + disableAnalytics: true |
| 32 | + |
| 33 | + server: |
65 | 34 | port: 3000 |
66 | | - resourcesDir: "/data/resources" |
67 | | - secureCookie: true |
68 | | - sessionExpiry: 43200 |
69 | | - socketPath: "" |
70 | | - trustedProxies: "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" |
71 | | - users: "admin:$2a$10$abcdefghijklmnopqrstuvwxyz,user:$2a$10$1234567890abcdefghijklmn" |
72 | | - usersFile: "/data/users.txt" |
| 35 | + address: "0.0.0.0" |
| 36 | + |
| 37 | + auth: |
| 38 | + users: "admin:$$2a$$10$$abcdefghijklmnopqrstuvwxyz" |
73 | 39 |
|
74 | | - # OAuth Providers - Testing multiple providers |
75 | | - providers: |
76 | | - - id: "github" |
77 | | - clientId: "github-client-id" |
78 | | - clientSecret: "github-client-secret" |
79 | | - authUrl: "https://github.com/login/oauth/authorize" |
80 | | - tokenUrl: "https://github.com/login/oauth/access_token" |
81 | | - userInfoUrl: "https://api.github.com/user" |
82 | | - scopes: "user:email" |
83 | | - name: "GitHub" |
84 | | - insecureSkipVerify: false |
85 | | - - id: "google" |
86 | | - clientId: "google-client-id" |
87 | | - clientSecretSecretRef: |
88 | | - name: "google-oauth-secret" |
89 | | - key: "client-secret" |
90 | | - authUrl: "https://accounts.google.com/o/oauth2/auth" |
91 | | - tokenUrl: "https://oauth2.googleapis.com/token" |
92 | | - userInfoUrl: "https://www.googleapis.com/oauth2/v2/userinfo" |
93 | | - scopes: "openid email profile" |
94 | | - name: "Google" |
95 | | - insecureSkipVerify: false |
96 | | - - id: "custom" |
97 | | - clientId: "custom-client-id" |
98 | | - clientSecret: "custom-client-secret" |
99 | | - clientSecretFile: "/secrets/custom-secret" |
100 | | - authUrl: "https://auth.example.com/oauth/authorize" |
101 | | - tokenUrl: "https://auth.example.com/oauth/token" |
102 | | - userInfoUrl: "https://auth.example.com/oauth/userinfo" |
103 | | - scopes: "openid profile email" |
104 | | - name: "Custom OAuth" |
105 | | - insecureSkipVerify: true |
| 40 | + ui: |
| 41 | + title: "Tinyauth CI" |
106 | 42 |
|
107 | | - # LDAP Configuration - Fully configured |
108 | | - ldap: |
109 | | - address: "ldaps://ldap.example.com:636" |
110 | | - bindDn: "cn=admin,dc=example,dc=com" |
111 | | - bindPassword: "admin-password" |
112 | | - bindPasswordSecretRef: |
113 | | - name: "ldap-secret" |
114 | | - key: "bind-password" |
115 | | - baseDn: "dc=example,dc=com" |
116 | | - insecure: false |
117 | | - searchFilter: "(uid=%s)" |
| 43 | + log: |
| 44 | + level: "info" |
118 | 45 |
|
119 | | -# Ingress - Fully configured |
120 | 46 | ingress: |
121 | 47 | enabled: true |
122 | | - className: "nginx" |
123 | | - annotations: |
124 | | - kubernetes.io/ingress.class: nginx |
125 | | - kubernetes.io/tls-acme: "true" |
126 | | - nginx.ingress.kubernetes.io/ssl-redirect: "true" |
127 | | - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
128 | | - cert-manager.io/cluster-issuer: "letsencrypt-prod" |
| 48 | + className: "" |
| 49 | + annotations: {} |
129 | 50 | hosts: |
130 | 51 | - host: tinyauth-ci.example.com |
131 | 52 | paths: |
132 | 53 | - path: / |
133 | 54 | pathType: ImplementationSpecific |
134 | | - - host: auth.example.com |
135 | | - paths: |
136 | | - - path: /auth |
137 | | - pathType: Prefix |
138 | | - tls: |
139 | | - - secretName: tinyauth-tls |
140 | | - hosts: |
141 | | - - tinyauth-ci.example.com |
142 | | - - auth.example.com |
143 | | - |
144 | | -# Resource limits and requests |
145 | | -resources: |
146 | | - limits: |
147 | | - cpu: 500m |
148 | | - memory: 512Mi |
149 | | - requests: |
150 | | - cpu: 250m |
151 | | - memory: 256Mi |
| 55 | + tls: [] |
152 | 56 |
|
153 | | -# Health checks with custom configuration |
154 | 57 | livenessProbe: |
155 | 58 | httpGet: |
156 | 59 | path: /api/healthz |
157 | 60 | port: http |
158 | | - initialDelaySeconds: 30 |
159 | | - periodSeconds: 10 |
160 | | - timeoutSeconds: 5 |
161 | | - failureThreshold: 3 |
162 | 61 |
|
163 | 62 | readinessProbe: |
164 | 63 | httpGet: |
165 | 64 | path: /api/healthz |
166 | 65 | port: http |
167 | | - initialDelaySeconds: 5 |
168 | | - periodSeconds: 5 |
169 | | - timeoutSeconds: 3 |
170 | | - failureThreshold: 3 |
171 | 66 |
|
172 | | -# Autoscaling enabled |
173 | 67 | autoscaling: |
174 | | - enabled: true |
175 | | - minReplicas: 2 |
176 | | - maxReplicas: 10 |
177 | | - targetCPUUtilizationPercentage: 70 |
178 | | - targetMemoryUtilizationPercentage: 80 |
179 | | - |
180 | | -# Additional volumes for testing |
181 | | -volumes: |
182 | | - - name: config-volume |
183 | | - configMap: |
184 | | - name: tinyauth-config |
185 | | - - name: secret-volume |
186 | | - secret: |
187 | | - secretName: tinyauth-secrets |
188 | | - optional: false |
189 | | - |
190 | | -# Additional volume mounts |
191 | | -volumeMounts: |
192 | | - - name: config-volume |
193 | | - mountPath: "/etc/config" |
194 | | - readOnly: true |
195 | | - - name: secret-volume |
196 | | - mountPath: "/etc/secrets" |
197 | | - readOnly: true |
198 | | - |
199 | | -# Node selection and scheduling |
200 | | -nodeSelector: |
201 | | - kubernetes.io/arch: amd64 |
202 | | - node-type: compute |
203 | | - |
204 | | -tolerations: |
205 | | - - key: "dedicated" |
206 | | - operator: "Equal" |
207 | | - value: "tinyauth" |
208 | | - effect: "NoSchedule" |
209 | | - - key: "node.kubernetes.io/not-ready" |
210 | | - operator: "Exists" |
211 | | - effect: "NoExecute" |
212 | | - tolerationSeconds: 300 |
| 68 | + enabled: false |
213 | 69 |
|
214 | | -affinity: |
215 | | - nodeAffinity: |
216 | | - requiredDuringSchedulingIgnoredDuringExecution: |
217 | | - nodeSelectorTerms: |
218 | | - - matchExpressions: |
219 | | - - key: kubernetes.io/arch |
220 | | - operator: In |
221 | | - values: |
222 | | - - amd64 |
223 | | - podAntiAffinity: |
224 | | - preferredDuringSchedulingIgnoredDuringExecution: |
225 | | - - weight: 100 |
226 | | - podAffinityTerm: |
227 | | - labelSelector: |
228 | | - matchExpressions: |
229 | | - - key: app.kubernetes.io/name |
230 | | - operator: In |
231 | | - values: |
232 | | - - tinyauth |
233 | | - topologyKey: kubernetes.io/hostname |
| 70 | +persistence: |
| 71 | + enabled: false |
234 | 72 |
|
235 | | -# Gateway API HTTPRoute configuration |
236 | 73 | httpRoute: |
237 | 74 | enabled: false |
238 | | - annotations: |
239 | | - example.com/route-annotation: "test-value" |
240 | | - parentRefs: |
241 | | - - name: my-gateway |
242 | | - namespace: gateway-system |
243 | | - - name: secondary-gateway |
244 | | - hostnames: |
245 | | - - tinyauth-gateway.example.com |
246 | | - - auth-gateway.example.com |
247 | | - rules: |
248 | | - - matches: |
249 | | - - path: |
250 | | - type: Prefix |
251 | | - value: / |
252 | | - - matches: |
253 | | - - path: |
254 | | - type: Exact |
255 | | - value: /auth |
256 | | - - headers: |
257 | | - - name: x-auth-required |
258 | | - value: "true" |
259 | | - |
260 | | -# Additional environment variables |
261 | | -env: |
262 | | - - name: CUSTOM_VAR |
263 | | - value: "custom_value" |
264 | | - - name: SECRET_VAR |
265 | | - valueFrom: |
266 | | - secretKeyRef: |
267 | | - name: my-secret |
268 | | - key: secret-key |
269 | | - - name: CONFIGMAP_VAR |
270 | | - valueFrom: |
271 | | - configMapKeyRef: |
272 | | - name: my-config |
273 | | - key: config-key |
274 | | - - name: NODE_NAME |
275 | | - valueFrom: |
276 | | - fieldRef: |
277 | | - fieldPath: spec.nodeName |
278 | | - - name: POD_IP |
279 | | - valueFrom: |
280 | | - fieldRef: |
281 | | - fieldPath: status.podIP |
282 | 75 |
|
283 | | -# Persistent storage enabled |
284 | | -persistence: |
285 | | - enabled: true |
286 | | - existingClaim: "" |
287 | | - storageClass: "fast-ssd" |
288 | | - accessMode: ReadWriteOnce |
289 | | - size: 5Gi |
290 | | - mountPath: /data |
291 | | - annotations: |
292 | | - volume.beta.kubernetes.io/storage-class: "fast-ssd" |
293 | | - example.com/backup: "enabled" |
| 76 | +volumes: [] |
| 77 | +volumeMounts: [] |
| 78 | +nodeSelector: {} |
| 79 | +tolerations: [] |
| 80 | +affinity: {} |
| 81 | +env: [] |
0 commit comments