| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 1 | input: { |
| 2 | network: #Network |
| 3 | subdomain: string |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 4 | requireAuth: bool |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 5 | } |
| 6 | |
| 7 | _domain: "\(input.subdomain).\(input.network.domain)" |
| 8 | |
| 9 | name: "memberships" |
| 10 | namespace: "app-memberships" |
| 11 | readme: "Memberships application will be installed on \(input.network.name) network and be accessible at https://\(_domain)" |
| 12 | description: "The application is a membership management system designed to facilitate the organization and administration of groups and memberships. Can be configured to be reachable only from private network or publicly." |
| 13 | icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M15.43 15.48c-1.1-.49-2.26-.73-3.43-.73c-1.18 0-2.33.25-3.43.73c-.23.1-.4.29-.49.52h7.85a.978.978 0 0 0-.5-.52m-2.49-6.69C12.86 8.33 12.47 8 12 8s-.86.33-.94.79l-.2 1.21h2.28z' opacity='0.3'/><path fill='currentColor' d='M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74m.79-3.21c.08-.46.47-.79.94-.79s.86.33.94.79l.2 1.21h-2.28zm-9.4 2.32c-.13.26-.18.57-.1.88c.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29c0-.14-.03-.27-.07-.4c-.01-.03-.01-.05.01-.08c.09-.16.14-.34.14-.53c0-.31-.14-.6-.36-.82c-.03-.03-.03-.06-.02-.1c.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74a.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26c-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06c-.29.26-.46.65-.41 1.05c.03.22.12.43.25.6c.03.02.03.06.02.09m14.58 2.54c-1.17-.52-2.61-.9-4.24-.9c-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74M8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73c1.18 0 2.33.25 3.43.73c.23.1.4.29.49.52zm-6.85-1.42A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29c-.37-.06-.74-.1-1.13-.1c-.99 0-1.93.21-2.78.58m21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1c.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85M22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06c0 1.1.9 2 2 2s2-.9 2-2'/></svg>" |
| 14 | |
| 15 | images: { |
| 16 | memberships: { |
| 17 | repository: "giolekva" |
| 18 | name: "memberships" |
| 19 | tag: "latest" |
| 20 | pullPolicy: "Always" |
| 21 | } |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 22 | authProxy: { |
| 23 | repository: "giolekva" |
| 24 | name: "auth-proxy" |
| 25 | tag: "latest" |
| 26 | pullPolicy: "Always" |
| 27 | } |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 28 | } |
| 29 | |
| 30 | charts: { |
| 31 | memberships: { |
| 32 | chart: "charts/memberships" |
| 33 | sourceRef: { |
| 34 | kind: "GitRepository" |
| 35 | name: "pcloud" |
| 36 | namespace: global.id |
| 37 | } |
| 38 | } |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 39 | ingress: { |
| 40 | chart: "charts/ingress" |
| 41 | sourceRef: { |
| 42 | kind: "GitRepository" |
| 43 | name: "pcloud" |
| 44 | namespace: global.id |
| 45 | } |
| 46 | } |
| 47 | authProxy: { |
| 48 | chart: "charts/auth-proxy" |
| 49 | sourceRef: { |
| 50 | kind: "GitRepository" |
| 51 | name: "pcloud" |
| 52 | namespace: global.id |
| 53 | } |
| 54 | } |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 55 | } |
| 56 | |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 57 | _membershipsServiceName: "memberships" |
| 58 | _authProxyServiceName: "auth-proxy" |
| 59 | _httpPortName: "http" |
| 60 | |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 61 | helm: { |
| 62 | "memberships": { |
| 63 | chart: charts.memberships |
| 64 | values: { |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 65 | storage: { |
| 66 | size: "1Gi" |
| 67 | } |
| 68 | image: { |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 69 | repository: images.memberships.fullName |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 70 | tag: images.memberships.tag |
| 71 | pullPolicy: images.memberships.pullPolicy |
| 72 | } |
| DTabidze | 618e243 | 2024-03-20 21:07:52 +0400 | [diff] [blame^] | 73 | portName: _httpPortName |
| 74 | } |
| 75 | } |
| 76 | if input.requireAuth { |
| 77 | "auth-proxy": { |
| 78 | chart: charts.authProxy |
| 79 | values: { |
| 80 | image: { |
| 81 | repository: images.authProxy.fullName |
| 82 | tag: images.authProxy.tag |
| 83 | pullPolicy: images.authProxy.pullPolicy |
| 84 | } |
| 85 | upstream: "\(_membershipsServiceName).\(release.namespace).svc.cluster.local" |
| 86 | whoAmIAddr: "https://accounts.\(global.domain)/sessions/whoami" |
| 87 | loginAddr: "https://accounts-ui.\(global.domain)/login" |
| 88 | portName: _httpPortName |
| 89 | } |
| 90 | } |
| 91 | } |
| 92 | ingress: { |
| 93 | chart: charts.ingress |
| 94 | values: { |
| 95 | domain: _domain |
| 96 | ingressClassName: input.network.ingressClass |
| 97 | certificateIssuer: input.network.certificateIssuer |
| 98 | service: { |
| 99 | if input.requireAuth { |
| 100 | name: _authProxyServiceName |
| 101 | } |
| 102 | if !input.requireAuth { |
| 103 | name: _membershipsServiceName |
| 104 | } |
| 105 | port: name: _httpPortName |
| 106 | } |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 107 | } |
| 108 | } |
| 109 | } |