@toa.io/operations 1.0.0-alpha.34 → 1.0.0-alpha.340

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +449 -0
  2. package/image/runtime.Dockerfile +20 -0
  3. package/package.json +10 -10
  4. package/readme.md +224 -0
  5. package/src/deployment/.deployment/.describe/components.js +1 -5
  6. package/src/deployment/.deployment/.describe/compositions.js +26 -7
  7. package/src/deployment/.deployment/.describe/dependencies.js +1 -6
  8. package/src/deployment/.deployment/.describe/events.js +63 -0
  9. package/src/deployment/.deployment/.describe/fold.js +42 -0
  10. package/src/deployment/.deployment/.describe/fold.test.js +108 -0
  11. package/src/deployment/.deployment/.describe/index.js +4 -13
  12. package/src/deployment/.deployment/.describe/mounts.js +17 -0
  13. package/src/deployment/.deployment/.describe/resources.js +129 -0
  14. package/src/deployment/.deployment/.describe/resources.test.js +129 -0
  15. package/src/deployment/.deployment/.describe/services.js +32 -6
  16. package/src/deployment/.deployment/.describe/services.test.js +78 -0
  17. package/src/deployment/.deployment/.describe/variables.js +5 -9
  18. package/src/deployment/.deployment/declare.js +1 -5
  19. package/src/deployment/.deployment/describe.js +168 -10
  20. package/src/deployment/.deployment/index.js +3 -9
  21. package/src/deployment/.deployment/merge.js +66 -6
  22. package/src/deployment/.deployment/merge.test.js +133 -0
  23. package/src/deployment/chart/templates/components.configmap.yaml +13 -0
  24. package/src/deployment/chart/templates/components.yaml +4 -3
  25. package/src/deployment/chart/templates/compositions.yaml +109 -4
  26. package/src/deployment/chart/templates/mono.yaml +199 -0
  27. package/src/deployment/chart/templates/services.yaml +97 -7
  28. package/src/deployment/chart/values.yaml +23 -1
  29. package/src/deployment/composition.js +8 -6
  30. package/src/deployment/deployment.js +175 -35
  31. package/src/deployment/drain.js +70 -0
  32. package/src/deployment/drain.test.js +64 -0
  33. package/src/deployment/factory.js +178 -37
  34. package/src/deployment/images/bundle.js +93 -0
  35. package/src/deployment/images/composition.Dockerfile +9 -17
  36. package/src/deployment/images/composition.js +9 -56
  37. package/src/deployment/images/dependencies.Dockerfile +23 -0
  38. package/src/deployment/images/dependencies.js +171 -0
  39. package/src/deployment/images/dependencies.test.js +271 -0
  40. package/src/deployment/images/factory.js +31 -15
  41. package/src/deployment/images/format.js +66 -0
  42. package/src/deployment/images/format.test.js +150 -0
  43. package/src/deployment/images/image.fixtures.js +17 -19
  44. package/src/deployment/images/image.js +79 -38
  45. package/src/deployment/images/image.test.js +11 -5
  46. package/src/deployment/images/index.js +1 -5
  47. package/src/deployment/images/mono.Dockerfile +11 -0
  48. package/src/deployment/images/mono.js +15 -0
  49. package/src/deployment/images/publish.js +91 -0
  50. package/src/deployment/images/runtime-base.test.js +97 -0
  51. package/src/deployment/images/service.Dockerfile +17 -5
  52. package/src/deployment/images/service.js +63 -14
  53. package/src/deployment/index.js +1 -5
  54. package/src/deployment/operator.js +25 -16
  55. package/src/deployment/operator.test.js +98 -7
  56. package/src/deployment/registry.js +210 -46
  57. package/src/deployment/registry.test.js +539 -0
  58. package/src/deployment/secrets.js +92 -0
  59. package/src/deployment/secrets.test.js +180 -0
  60. package/src/deployment/service.js +4 -6
  61. package/src/deployment/workspace.js +13 -8
  62. package/src/index.js +3 -2
  63. package/src/process.js +51 -13
  64. package/src/process.test.js +33 -0
  65. package/types/_deployment/composition.d.ts +2 -3
  66. package/types/_deployment/dependency.d.ts +15 -7
  67. package/types/_deployment/deployment.d.ts +10 -8
  68. package/types/_deployment/factory.d.ts +2 -4
  69. package/types/_deployment/images/factory.d.ts +6 -8
  70. package/types/_deployment/images/image.d.ts +16 -1
  71. package/types/_deployment/images/registry.d.ts +8 -11
  72. package/types/_deployment/operator.d.ts +10 -9
  73. package/types/_deployment/registry.d.ts +7 -4
  74. package/types/_deployment/service.d.ts +4 -3
  75. package/types/dependency.ts +79 -0
  76. package/types/index.ts +1 -0
  77. package/types/dependency.d.ts +0 -39
  78. package/types/index.d.ts +0 -1
@@ -0,0 +1,79 @@
1
+ import type { Manifest } from '@toa.io/norm'
2
+ import type { Locator } from '@toa.io/core'
3
+
4
+ export interface Service {
5
+ group: string
6
+ name: string
7
+ version: string
8
+ /** The repository the extension publishes this service's image to, without a tag.
9
+ * Stating it lets an application take the published image instead of building one. */
10
+ image?: string
11
+ port?: number
12
+ ingress?: Ingress
13
+ /** Annotations for the Service itself, as opposed to `ingress.annotations`. */
14
+ annotations?: object
15
+ resources?: Resources
16
+ variables?: Variable[]
17
+ components?: string[]
18
+ probe?: Probe | false
19
+ /** The workloads running this service, when compositions declared it instead of letting
20
+ * it deploy on its own. Set by the deployment, never by an extension. */
21
+ workload?: string[]
22
+ }
23
+
24
+ export interface Variable {
25
+ name: string
26
+ value?: string
27
+ secret?: {
28
+ name: string
29
+ key: string
30
+ optional?: boolean
31
+ }
32
+ }
33
+
34
+ export interface Instance<T> {
35
+ locator: Locator
36
+ manifest: T
37
+ component: Manifest
38
+ }
39
+
40
+ export type Instances<T> = Array<Instance<T>>
41
+
42
+ export type Variables = Record<'global' | string, Variable[]>
43
+ export type Mounts = Record<'global' | string, Mount[]>
44
+
45
+ export interface Dependency {
46
+ services?: Service[]
47
+ variables?: Variables
48
+ mounts?: Mounts
49
+ /** Event labels (`namespace.name.event`) this dependency consumes. */
50
+ events?: string[]
51
+ /** Default probe for compositions and services without their own probe. `false` disables. */
52
+ probe?: Probe | false
53
+ }
54
+
55
+ interface Ingress {
56
+ /** Path prefix this service claims on the host. Defaults to `/`. */
57
+ path?: string
58
+ default?: boolean
59
+ hosts?: string[]
60
+ class?: string
61
+ annotations?: object
62
+ }
63
+
64
+ export interface Probe {
65
+ port: number
66
+ path: string
67
+ delay?: number
68
+ }
69
+
70
+ interface Mount {
71
+ name: string
72
+ path: string
73
+ claim: string
74
+ }
75
+
76
+ export interface Resources {
77
+ cpu: string[]
78
+ memory: string[]
79
+ }
package/types/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dependency.ts'
@@ -1,39 +0,0 @@
1
- export type Service = {
2
- group: string
3
- name: string
4
- version: string
5
- port: number
6
- ingress: Ingress
7
- variables: Variable[]
8
- components?: string[]
9
- probe?: Probe
10
- }
11
-
12
- export type Variable = {
13
- name: string
14
- value?: string
15
- secret?: {
16
- name: string,
17
- key: string
18
- optional?: boolean
19
- }
20
- }
21
-
22
- export type Variables = Record<'global' | string, Variable[]>
23
-
24
- export type Dependency = {
25
- services?: Service[]
26
- variables?: Variables
27
- }
28
-
29
- type Ingress = {
30
- hosts: string[]
31
- class?: string
32
- annotations?: object
33
- }
34
-
35
- interface Probe {
36
- port: number
37
- path: string
38
- delay?: number
39
- }
package/types/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './dependency'