| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 1 | import ( |
| 2 | "encoding/base64" | ||||
| 3 | ) | ||||
| 4 | |||||
| 5 | input: { | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 6 | repoAddr: string |
| 7 | repoHost: string | ||||
| 8 | branch: string | ||||
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 9 | gitRepoPublicKey: string |
| 10 | // TODO(gio): auto generate | ||||
| 11 | fluxKeys: #SSHKey | ||||
| 12 | } | ||||
| 13 | |||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 14 | name: "Dodo App Instance" |
| 15 | namespace: "dodo-app-instance" | ||||
| 16 | readme: "Deploy app by pushing to Git repository" | ||||
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 17 | description: "Deploy app by pushing to Git repository" |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 18 | icon: "" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 19 | |
| 20 | resources: { | ||||
| 21 | "config-kustomization": { | ||||
| 22 | apiVersion: "kustomize.toolkit.fluxcd.io/v1" | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 23 | kind: "Kustomization" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 24 | metadata: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 25 | name: "app" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 26 | namespace: release.namespace |
| 27 | } | ||||
| 28 | spec: { | ||||
| 29 | interval: "1m" | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 30 | path: "./" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 31 | sourceRef: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 32 | kind: "GitRepository" |
| 33 | name: "app" | ||||
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 34 | namespace: release.namespace |
| 35 | } | ||||
| 36 | prune: true | ||||
| 37 | } | ||||
| 38 | } | ||||
| 39 | "config-secret": { | ||||
| 40 | apiVersion: "v1" | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 41 | kind: "Secret" |
| 42 | type: "Opaque" | ||||
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 43 | metadata: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 44 | name: "app" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 45 | namespace: release.namespace |
| 46 | } | ||||
| 47 | data: { | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 48 | identity: base64.Encode(null, input.fluxKeys.private) |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 49 | "identity.pub": base64.Encode(null, input.fluxKeys.public) |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 50 | known_hosts: base64.Encode(null, "\(input.repoHost) \(input.gitRepoPublicKey)") |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 51 | } |
| 52 | } | ||||
| 53 | "config-source": { | ||||
| 54 | apiVersion: "source.toolkit.fluxcd.io/v1" | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 55 | kind: "GitRepository" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 56 | metadata: { |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 57 | name: "app" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 58 | namespace: release.namespace |
| 59 | } | ||||
| 60 | spec: { | ||||
| 61 | interval: "1m0s" | ||||
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 62 | ref: branch: input.branch |
| gio | 3305976 | 2024-07-05 13:19:07 +0400 | [diff] [blame] | 63 | secretRef: name: "app" |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 64 | timeout: "60s" |
| gio | 9bd87ca | 2025-04-20 08:05:34 +0400 | [diff] [blame] | 65 | url: input.repoAddr |
| gio | 266c04f | 2024-07-03 14:18:45 +0400 | [diff] [blame] | 66 | } |
| 67 | } | ||||
| 68 | } | ||||