diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 8868bd1a..5b698ba8 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/arbitrum/README.md b/arbitrum/README.md index 468f2b98..a22b7fb2 100644 --- a/arbitrum/README.md +++ b/arbitrum/README.md @@ -18,7 +18,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -31,7 +31,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the arbitrum *Namespace* by creating it with the following contents: ```yaml @@ -74,7 +74,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@arbitrum/helmfile.yaml?ref=arbitrum-latest diff --git a/arbitrum/helmfile.yaml b/arbitrum/helmfile.yaml index 5371a828..687366cd 100644 --- a/arbitrum/helmfile.yaml +++ b/arbitrum/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} +{{- else }} +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "arbitrum-" .Values.flavor ) }} @@ -137,21 +153,27 @@ templates: version: "0.2.1" {{- end }} releases: + {{- $canonicalRelease := "arbitrum-nitro" }} {{- $release := "arbitrum-nitro" }} - - name: 'arbitrum-nitro' + - name: "{{ $release }}" inherit: - - template: 'arbitrum-nitro' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "arbitrum-classic" }} {{- $release := "arbitrum-classic" }} - - name: 'arbitrum-classic' + - name: "{{ $release }}" inherit: - - template: 'arbitrum-classic' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/avalanche/README.md b/avalanche/README.md index 50625387..343a22fd 100644 --- a/avalanche/README.md +++ b/avalanche/README.md @@ -16,7 +16,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -29,7 +29,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the avalanche *Namespace* by creating it with the following contents: ```yaml @@ -72,7 +72,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@avalanche/helmfile.yaml?ref=avalanche-latest diff --git a/avalanche/helmfile.yaml b/avalanche/helmfile.yaml index 3ae88164..86a154bb 100644 --- a/avalanche/helmfile.yaml +++ b/avalanche/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "avalanche-" .Values.flavor ) }} @@ -123,15 +139,19 @@ templates: version: "0.1.8" {{- end }} releases: + {{- $canonicalRelease := "avalanche" }} {{- $release := "avalanche" }} - - name: 'avalanche' + - name: "{{ $release }}" inherit: - - template: 'avalanche' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/celo/README.md b/celo/README.md index 4137cbf2..ab3fa850 100644 --- a/celo/README.md +++ b/celo/README.md @@ -16,7 +16,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -29,7 +29,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the celo *Namespace* by creating it with the following contents: ```yaml @@ -72,7 +72,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@celo/helmfile.yaml?ref=celo-latest diff --git a/celo/helmfile.yaml b/celo/helmfile.yaml index 0f57d8d8..cda6679e 100644 --- a/celo/helmfile.yaml +++ b/celo/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "celo-" .Values.flavor ) }} @@ -123,15 +139,19 @@ templates: version: "0.1.8" {{- end }} releases: + {{- $canonicalRelease := "celo" }} {{- $release := "celo" }} - - name: 'celo' + - name: "{{ $release }}" inherit: - - template: 'celo' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/ethereum/README.md b/ethereum/README.md index 4949a7f7..6d7f0083 100644 --- a/ethereum/README.md +++ b/ethereum/README.md @@ -18,7 +18,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -31,7 +31,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the ethereum *Namespace* by creating it with the following contents: ```yaml @@ -74,7 +74,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@ethereum/helmfile.yaml?ref=ethereum-latest @@ -134,6 +134,9 @@ proxyd.chartVersion | string | | Specify a specific chart version to use for th proxyd.labels | object | | Adds helmfile labels to this release | proxyd.mergeValues | boolean | true | Merges passed values with namespace's defaults if true, overrides if false | proxyd.values | (object *or* list of objects) | | Pass values to the release helm chart | +scaling | object | | ethereum scaling interface | +scaling.deployments | integer | 1 | number of independent stateful sets to deploy | +scaling.startP2PPort | integer | | A beggining port for the range to use in P2P NodePorts | targetNamespace | string | eth-mainnet | the default is eth- | helmDefaults | object | | | helmDefaults.args | list of strings | | | diff --git a/ethereum/helmfile.yaml b/ethereum/helmfile.yaml index 178b0bf9..ff6aac79 100644 --- a/ethereum/helmfile.yaml +++ b/ethereum/helmfile.yaml @@ -1,3 +1,33 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + +# Define default features when undefined +{{ if not (hasKey .Values "features") }} +{{ $_ := set .Values "features" (list +`nimbus` +`proxyd` +) }} +{{ end }} + +#set default number of deployments when missing +{{ if not ( hasKey .Values "scaling" ) }} +{{ $_ := set .Values "scaling" dict }} +{{ end }} +{{ if not ( hasKey ( .Values | get "scaling" dict ) "deployments" ) }} +{{ $_ := set .Values.scaling "deployments" 1 }} +{{ end }} + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + - features: {{ .Values.features | toYaml | nindent 10 }} + - scaling: + deployments: {{ .Values.scaling.deployments }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +64,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} +{{- else }} +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +88,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,19 +101,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - -# Define default features when undefined -{{ if not (hasKey .Values "features") }} -{{ $_ := set .Values "features" (list -`nimbus` -`proxyd` -) }} -{{ end }} - #set default namespace {{ $_defaultNamespace := ( print "eth-" .Values.flavor ) }} @@ -144,25 +170,35 @@ templates: version: "0.3.4-canary.4" {{- end }} releases: - {{- $release := "erigon" }} - - name: 'erigon' + {{- $canonicalRelease := "erigon" }} + {{- range $index := until .Values.scaling.deployments }} + {{- $deploymentIndex := (add . 1) }} + {{- $release := (printf "%s%v" "erigon-" $deploymentIndex) }} + - name: "{{ $release }}" inherit: - - template: 'erigon' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "nimbus" ( .Values | get "features" list ) }} - {{- $release := "nimbus" }} - - name: 'nimbus' + {{- $canonicalRelease := "nimbus" }} + {{- range $index := until .Values.scaling.deployments }} + {{- $deploymentIndex := (add . 1) }} + {{- $release := (printf "%s%v" "nimbus-" $deploymentIndex) }} + - name: "{{ $release }}" inherit: - - template: 'nimbus' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{- end -}} {{ if has "proxyd" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} diff --git a/ethereum/values/_common/erigon.yaml b/ethereum/values/_common/erigon.yaml.gotmpl similarity index 77% rename from ethereum/values/_common/erigon.yaml rename to ethereum/values/_common/erigon.yaml.gotmpl index 0fd1cbb5..cb344c82 100644 --- a/ethereum/values/_common/erigon.yaml +++ b/ethereum/values/_common/erigon.yaml.gotmpl @@ -1,3 +1,5 @@ +{{ $scalingIndex := splitList "-" .Release.Name | last }} + statefulNode: jwt: # Generate me with: openssl rand -hex 32 @@ -12,6 +14,11 @@ statefulNode: volumeClaimSpec: # -- The storage class to use when provisioning a persistent volume for Erigon storageClassName: openebs-rawfile-localpv # change me if desired +{{- if (hasKey .Values.scaling "p2pStartPort") }} + p2pNodePort: + enabled: true + port: {{ add (mul (sub $scalingIndex 1) 2) .Values.scaling.p2pStartPort }} +{{- end }} rpcdaemon: enabled: true diff --git a/ethereum/values/_common/nimbus.yaml b/ethereum/values/_common/nimbus.yaml.gotmpl similarity index 68% rename from ethereum/values/_common/nimbus.yaml rename to ethereum/values/_common/nimbus.yaml.gotmpl index 0ec2ba39..7b173563 100644 --- a/ethereum/values/_common/nimbus.yaml +++ b/ethereum/values/_common/nimbus.yaml.gotmpl @@ -1,5 +1,6 @@ nimbus: - executionClientUrl: http://erigon-stateful-node:8551 + {{ $scalingIndex := splitList "-" .Release.Name | last }} + executionClientUrl: http://erigon-{{ $scalingIndex }}-stateful-node:8551 jwt: # Generate me with: openssl rand -hex 32 # Must match EL client jwt @@ -15,6 +16,11 @@ nimbus: resources: requests: storage: 300Gi +{{- if (hasKey .Values.scaling "p2pStartPort") }} + p2pNodePort: + enabled: true + port: {{ add (mul (sub $scalingIndex 1) 2) .Values.scaling.p2pStartPort 1 }} +{{- end }} prometheus: serviceMonitors: diff --git a/ethereum/values/_common/proxyd.yaml b/ethereum/values/_common/proxyd.yaml.gotmpl similarity index 71% rename from ethereum/values/_common/proxyd.yaml rename to ethereum/values/_common/proxyd.yaml.gotmpl index 19380762..07c41b5e 100644 --- a/ethereum/values/_common/proxyd.yaml +++ b/ethereum/values/_common/proxyd.yaml.gotmpl @@ -1,8 +1,10 @@ backends: - erigon-0: + {{ range $elem := until .Values.scaling.deployments }} + {{ $scalingIndex := (add $elem 1) }} + erigon-{{ $scalingIndex }}: enabled: true # -- Define the JSON-RPC URL for the backend - rpcUrl: http://erigon-stateful-node:8545 + rpcUrl: http://erigon-{{ $scalingIndex }}-stateful-node:8545 # -- Define additional configuration keys for the backend (see [proxyd config](https://github.com/ethereum-optimism/optimism/blob/5d309e6a6d5e1ef6a88c1ce827b7e6d47f033bbb/proxyd/example.config.toml#L47)) extraConfig: {} # -- Define which backend groups the backend is part of @@ -10,6 +12,7 @@ backends: - pruned - archive - archive-trace + {{ end }} prometheus: serviceMonitors: diff --git a/gnosis/README.md b/gnosis/README.md index 92ecf1a3..a3392fe9 100644 --- a/gnosis/README.md +++ b/gnosis/README.md @@ -18,7 +18,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -31,7 +31,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the gnosis *Namespace* by creating it with the following contents: ```yaml @@ -74,7 +74,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@gnosis/helmfile.yaml?ref=gnosis-latest diff --git a/gnosis/helmfile.yaml b/gnosis/helmfile.yaml index 2e45b815..65c9d369 100644 --- a/gnosis/helmfile.yaml +++ b/gnosis/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} +{{- else }} +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "gnosis-" .Values.flavor ) }} @@ -137,21 +153,27 @@ templates: version: "0.3.2" {{- end }} releases: + {{- $canonicalRelease := "nethermind" }} {{- $release := "nethermind" }} - - name: 'nethermind' + - name: "{{ $release }}" inherit: - - template: 'nethermind' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "nimbus" }} {{- $release := "nimbus" }} - - name: 'nimbus' + - name: "{{ $release }}" inherit: - - template: 'nimbus' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/graph/README.md b/graph/README.md index b17bf6d2..63936505 100644 --- a/graph/README.md +++ b/graph/README.md @@ -23,7 +23,7 @@ Utility kit for interacting and managing the Graph indexer stack. - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -36,7 +36,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the graph *Namespace* by creating it with the following contents: ```yaml @@ -79,7 +79,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml?ref=graph-latest diff --git a/graph/helmfile.yaml b/graph/helmfile.yaml index 45177ad1..ebb699a1 100644 --- a/graph/helmfile.yaml +++ b/graph/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "graph-" .Values.flavor ) }} @@ -165,33 +181,43 @@ templates: version: "0.2.0" {{- end }} releases: + {{- $canonicalRelease := "graph-node" }} {{- $release := "graph-node" }} - - name: 'graph-node' + - name: "{{ $release }}" inherit: - - template: 'graph-node' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "graph-network-indexer" }} {{- $release := "graph-network-indexer" }} - - name: 'graph-network-indexer' + - name: "{{ $release }}" inherit: - - template: 'graph-network-indexer' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "graph-toolbox" }} {{- $release := "graph-toolbox" }} - - name: 'graph-toolbox' + - name: "{{ $release }}" inherit: - - template: 'graph-toolbox' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "graph-operator-mnemonic" }} {{- $release := "graph-operator-mnemonic" }} - - name: 'graph-operator-mnemonic' + - name: "{{ $release }}" inherit: - - template: 'graph-operator-mnemonic' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "graph-database" }} {{- $release := "graph-database" }} - - name: 'graph-database' + - name: "{{ $release }}" inherit: - - template: 'graph-database' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/ingress/README.md b/ingress/README.md index 863eaefa..145ec7b1 100644 --- a/ingress/README.md +++ b/ingress/README.md @@ -18,7 +18,7 @@ ingress-nginx is an Ingress controller for Kubernetes using NGINX as a reverse p - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -31,7 +31,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the ingress *Namespace* by creating it with the following contents: ```yaml @@ -74,7 +74,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@ingress/helmfile.yaml?ref=ingress-latest diff --git a/ingress/helmfile.yaml b/ingress/helmfile.yaml index 91f745ae..ceb98140 100644 --- a/ingress/helmfile.yaml +++ b/ingress/helmfile.yaml @@ -1,3 +1,19 @@ + +# Define default features when undefined +{{ if not (hasKey .Values "features") }} +{{ $_ := set .Values "features" (list +`ingress` +`cert-manager` +) }} +{{ end }} + + +environments: + {{ .Environment.Name }}: + values: + - features: {{ .Values.features | toYaml | nindent 10 }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +50,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} +{{- else }} +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +74,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,15 +87,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} - -# Define default features when undefined -{{ if not (hasKey .Values "features") }} -{{ $_ := set .Values "features" (list -`ingress` -`cert-manager` -) }} -{{ end }} - #set default namespace {{ $_defaultNamespace := `ingress` }} @@ -147,26 +163,32 @@ templates: {{- end }} releases: {{ if has "ingress" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "ingress-nginx" }} {{- $release := "ingress-nginx" }} - - name: 'ingress-nginx' + - name: "{{ $release }}" inherit: - - template: 'ingress-nginx' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "cert-manager" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "cert-manager" }} {{- $release := "cert-manager" }} - - name: 'cert-manager' + - name: "{{ $release }}" inherit: - - template: 'cert-manager' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "cert-manager" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "cert-manager-resources" }} {{- $release := "cert-manager-resources" }} - - name: 'cert-manager-resources' + - name: "{{ $release }}" inherit: - - template: 'cert-manager-resources' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} diff --git a/monitoring/README.md b/monitoring/README.md index 5e141683..fddfc821 100644 --- a/monitoring/README.md +++ b/monitoring/README.md @@ -20,7 +20,7 @@ Promtail is an agent which ships the contents of local logs to a Loki instance - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -33,7 +33,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the monitoring *Namespace* by creating it with the following contents: ```yaml @@ -76,7 +76,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@monitoring/helmfile.yaml?ref=monitoring-latest diff --git a/monitoring/helmfile.yaml b/monitoring/helmfile.yaml index 17914da3..d1db6b8b 100644 --- a/monitoring/helmfile.yaml +++ b/monitoring/helmfile.yaml @@ -1,3 +1,19 @@ + +# Define default features when undefined +{{ if not (hasKey .Values "features") }} +{{ $_ := set .Values "features" (list +`metrics` +`logs` +) }} +{{ end }} + + +environments: + {{ .Environment.Name }}: + values: + - features: {{ .Values.features | toYaml | nindent 10 }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +50,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +74,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,15 +87,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} - -# Define default features when undefined -{{ if not (hasKey .Values "features") }} -{{ $_ := set .Values "features" (list -`metrics` -`logs` -) }} -{{ end }} - #set default namespace {{ $_defaultNamespace := `monitoring` }} @@ -161,34 +177,42 @@ templates: {{- end }} releases: {{ if has "metrics" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "kube-prometheus-stack" }} {{- $release := "kube-prometheus-stack" }} - - name: 'kube-prometheus-stack' + - name: "{{ $release }}" inherit: - - template: 'kube-prometheus-stack' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "metrics" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "node-problem-detector" }} {{- $release := "node-problem-detector" }} - - name: 'node-problem-detector' + - name: "{{ $release }}" inherit: - - template: 'node-problem-detector' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "logs" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "loki" }} {{- $release := "loki" }} - - name: 'loki' + - name: "{{ $release }}" inherit: - - template: 'loki' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "logs" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "promtail" }} {{- $release := "promtail" }} - - name: 'promtail' + - name: "{{ $release }}" inherit: - - template: 'promtail' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} diff --git a/package.json b/package.json index 46bf17aa..cd6ad323 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "private": true, "packageManager": "yarn@3.6.0", "devDependencies": { - "@commitlint/cli": "^17.6.5", - "@commitlint/config-conventional": "^17.6.5", - "git-cliff": "^1.2.0", + "@commitlint/cli": "^17.7.1", + "@commitlint/config-conventional": "^17.7.0", + "git-cliff": "^1.3.0", "husky": "^8.0.3", "swagger-cli": "^4.0.4" }, diff --git a/polygon/README.md b/polygon/README.md index 6639db20..12fe4d6b 100644 --- a/polygon/README.md +++ b/polygon/README.md @@ -18,7 +18,7 @@ Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -31,7 +31,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the polygon *Namespace* by creating it with the following contents: ```yaml @@ -74,7 +74,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@polygon/helmfile.yaml?ref=polygon-latest diff --git a/polygon/helmfile.yaml b/polygon/helmfile.yaml index 8a3ce934..babfc719 100644 --- a/polygon/helmfile.yaml +++ b/polygon/helmfile.yaml @@ -1,3 +1,16 @@ +#set default flavor when missing +{{ if not ( hasKey .Values "flavor" ) }} +{{ $_ := set .Values "flavor" "mainnet" }} +{{ end }} + + + +environments: + {{ .Environment.Name }}: + values: + - flavor: {{ .Values.flavor }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +47,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} +{{- else }} +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +71,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,12 +84,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} -#set default flavor when missing -{{ if not ( hasKey .Values "flavor" ) }} -{{ $_ := set .Values "flavor" "mainnet" }} -{{ end }} - - #set default namespace {{ $_defaultNamespace := ( print "polygon-" .Values.flavor ) }} @@ -137,21 +153,27 @@ templates: version: "0.2.1" {{- end }} releases: + {{- $canonicalRelease := "erigon" }} {{- $release := "erigon" }} - - name: 'erigon' + - name: "{{ $release }}" inherit: - - template: 'erigon' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "heimdall" }} {{- $release := "heimdall" }} - - name: 'heimdall' + - name: "{{ $release }}" inherit: - - template: 'heimdall' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + + {{- $canonicalRelease := "proxyd" }} {{- $release := "proxyd" }} - - name: 'proxyd' + - name: "{{ $release }}" inherit: - - template: 'proxyd' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/postgres-operator/README.md b/postgres-operator/README.md index b7ecbf2e..5c045277 100644 --- a/postgres-operator/README.md +++ b/postgres-operator/README.md @@ -2,7 +2,7 @@ # Postgres-Operator Namespace -This *Namespace* extends your Kubernetes cluster with custom resources for easilly creating and managing Postgres databases +This *Namespace* extends your Kubernetes cluster with custom resources for easily creating and managing Postgres databases [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) @@ -14,7 +14,7 @@ The Postgres Operator delivers an easy to run highly-available PostgreSQL cluste - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -27,7 +27,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the postgres-operator *Namespace* by creating it with the following contents: ```yaml @@ -70,7 +70,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@postgres-operator/helmfile.yaml?ref=postgres-operator-latest diff --git a/postgres-operator/helmfile.yaml b/postgres-operator/helmfile.yaml index e0173f59..7317b6d9 100644 --- a/postgres-operator/helmfile.yaml +++ b/postgres-operator/helmfile.yaml @@ -1,3 +1,11 @@ + + + +environments: + {{ .Environment.Name }}: + values: [] + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +42,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +66,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,8 +79,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} - - #set default namespace {{ $_defaultNamespace := `postgres-operator` }} @@ -107,9 +122,11 @@ templates: version: "1.10.1" {{- end }} releases: + {{- $canonicalRelease := "postgres-operator" }} {{- $release := "postgres-operator" }} - - name: 'postgres-operator' + - name: "{{ $release }}" inherit: - - template: 'postgres-operator' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/schema.json b/schema.json index a8437e32..4713d83b 100644 --- a/schema.json +++ b/schema.json @@ -1765,6 +1765,24 @@ } ] }, + "namespaces.ethereum.scaling": { + "description": "ethereum scaling interface", + "type": "object", + "required": [ + "deployments" + ], + "properties": { + "deployments": { + "description": "number of independent stateful sets to deploy", + "type": "integer", + "default": 1 + }, + "startP2PPort": { + "description": "A beggining port for the range to use in P2P NodePorts", + "type": "integer" + } + } + }, "namespaces.ethereum.values": { "description": "ethereum namespace values schema", "type": "object", @@ -1784,14 +1802,17 @@ "proxyd" ] }, + "flavor": { + "$ref": "#/components/schemas/namespaces.ethereum.flavor.enum" + }, "erigon": { "$ref": "#/components/schemas/base.releaseValues" }, "nimbus": { "$ref": "#/components/schemas/base.releaseValues" }, - "flavor": { - "$ref": "#/components/schemas/namespaces.ethereum.flavor.enum" + "scaling": { + "$ref": "#/components/schemas/namespaces.ethereum.scaling" }, "proxyd": { "$ref": "#/components/schemas/base.releaseValues" diff --git a/sealed-secrets/README.md b/sealed-secrets/README.md index 95b7213e..73a870bf 100644 --- a/sealed-secrets/README.md +++ b/sealed-secrets/README.md @@ -14,7 +14,7 @@ Sealed Secrets are 'one-way' encrypted K8s Secrets that can be created by anyone - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -27,7 +27,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the sealed-secrets *Namespace* by creating it with the following contents: ```yaml @@ -70,7 +70,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@sealed-secrets/helmfile.yaml?ref=sealed-secrets-latest diff --git a/sealed-secrets/helmfile.yaml b/sealed-secrets/helmfile.yaml index 5e62a669..49bcf378 100644 --- a/sealed-secrets/helmfile.yaml +++ b/sealed-secrets/helmfile.yaml @@ -1,3 +1,11 @@ + + + +environments: + {{ .Environment.Name }}: + values: [] + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +42,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +66,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,8 +79,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} - - #set default namespace {{ $_defaultNamespace := `sealed-secrets` }} @@ -107,9 +122,11 @@ templates: version: "2.13.0" {{- end }} releases: + {{- $canonicalRelease := "sealed-secrets" }} {{- $release := "sealed-secrets" }} - - name: 'sealed-secrets' + - name: "{{ $release }}" inherit: - - template: 'sealed-secrets' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + diff --git a/src/schemas/base.cue b/src/schemas/base.cue index d8a5491c..7bb539fa 100644 --- a/src/schemas/base.cue +++ b/src/schemas/base.cue @@ -64,6 +64,7 @@ _#namespaceTemplate: { targetNamespace: _key.#values.targetNamespace if _key.#features != _|_ {features: [..._key.#features.#enum]} if _key.#flavor != _|_ {flavor: _key.#flavor.#enum} + if _key.#scaling != _|_ {scaling: deployments: _key.#scaling.deployments} for rkey, _ in _key.releases { (rkey): { mergeValues: _key.#values.#releaseValues.mergeValues diff --git a/src/schemas/build_tool.cue b/src/schemas/build_tool.cue index 9d5de141..9921d684 100644 --- a/src/schemas/build_tool.cue +++ b/src/schemas/build_tool.cue @@ -56,6 +56,12 @@ _helmfile: { _defaultFeatures: _helmfile._#defaultFeatures & {_namespace: this} defaultFeatures: _defaultFeatures.out + _defaultScaling: _helmfile._#defaultScaling & {_namespace: this} + defaultScaling: _defaultScaling.out + + _environment: _helmfile._#environment & {_namespace: this} + environment: _environment.out + _defaultNamespace: _helmfile._#defaultNamespace & {_namespace: this} defaultNamespace: _defaultNamespace.out @@ -72,12 +78,15 @@ _helmfile: { repositories: _repos.out out: strings.Join([ + defaultFlavor, + defaultFeatures, + defaultScaling, + environment, + "---", _templateBlocks.transforms, _templateBlocks.releaseValues, helmDefaults, kubeVersion, - defaultFlavor, - defaultFeatures, defaultNamespace, labels, repositories, @@ -162,6 +171,45 @@ _helmfile: { } } + _#defaultScaling: { + this=_namespace: string + out: *"" | string + if _namespaces[this].values.scaling != _|_ { + out: """ + #set default number of deployments when missing + {{ if not ( hasKey .Values "scaling" ) }} + {{ $_ := set .Values \"scaling\" dict }} + {{ end }} + {{ if not ( hasKey ( .Values | get "scaling" dict ) \"deployments\" ) }} + {{ $_ := set .Values.scaling \"deployments\" \(_namespaces[this].values.scaling.deployments) }} + {{ end }} + + """ + } + } + + _#environment: { + this=_namespace: string + + _variables: { + if _namespaces[this].values.flavor != _|_ { + flavor: "{{ .Values.flavor }}" + } + if _namespaces[this].values.features != _|_ { + features: "{{ .Values.features | toYaml | nindent 10 }}" + } + if _namespaces[this].values.scaling != _|_ { + scaling: deployments: "{{ .Values.scaling.deployments }}" + } + } + + _yaml: yaml.Marshal({environments: "{{ .Environment.Name }}": values: [ for key, value in _variables {(key): value}]}) + _yamlCleanP: strings.Replace(_yaml, "'{{", "{{", -1) + _yamlCleanS: strings.Replace(_yamlCleanP, "}}'", "}}", -1) + _yamlClean: _yamlCleanS + out: _yamlClean + } + _#defaultNamespace: { this=_namespace: string if _namespaces[this].values._templatedTargetNamespace != _|_ { @@ -276,34 +324,79 @@ _helmfile: { _#release: { this=_release: string - out: """ + scale=_scale: *false | bool + + _blocks: { + release: """ + - name: "{{ $release }}" + inherit: + - template: "{{ $canonicalRelease }}" + values: + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + """ + + if scale { + header: """ + {{- $canonicalRelease := "\(this)" }} + {{- range $index := until .Values.scaling.deployments }} + {{- $deploymentIndex := (add . 1) }} + {{- $release := (printf "%s%v" "\(this)-" $deploymentIndex) }} + """ + end: """ + {{- end -}} + """ + } + + if !scale { + header: """ + {{- $canonicalRelease := "\(this)" }} {{- $release := "\(this)" }} - - name: '\(this)' - inherit: - - template: '\(this)' - values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} """ + end: "" + } + } + + out: strings.Join([_blocks.header, _blocks.release, _blocks.end], "\n") } _#releases: { this=_namespace: string + _blocks: {} - for releaseName, release in _namespaces[this].releases if release.feature == _|_ { - temp = "_\(releaseName)": _#release & {_release: releaseName} - _blocks: { - _ - "\(releaseName)": temp.out + + for releaseName, release in _namespaces[this].releases { + _props: {"\(releaseName)": {#properties: { + ... + _release: releaseName + }}} + if _namespaces[this].values.scaling.deployments != _|_ {if release._scale { + _props: {"\(releaseName)": {#properties: { + ... + _scale: true + }}} + }} + + temp = "_\(releaseName)": _#release & { + ... + _props["\(releaseName)"].#properties } - } - for releaseName, release in _namespaces[this].releases if release.feature != _|_ { - temp = "_\(releaseName)": _#release & {_release: releaseName} - _blocks: { - "_\(releaseName)": strings.Join([ - "{{ if has \"\(release.feature)\" ( .Values | get \"features\" list ) }}", - temp.out, - "{{- end -}}", - ], "\n") + + if release.feature == _|_ { + _blocks: { + _ + "\(releaseName)": temp.out + } + } + + if release.feature != _|_ { + _blocks: { + "\(releaseName)": strings.Join([ + "{{ if has \"\(release.feature)\" ( .Values | get \"features\" list ) }}", + temp.out, + "{{- end -}}", + ], "\n") + } + } } @@ -354,10 +447,20 @@ _templateBlocks: { {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} - - ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml - - ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml + - ./values/_common/{{ .canonicalRelease }}.yaml + - ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl + - ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml + - ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl + {{- else }} + - ./values/{{ .canonicalRelease }}.yaml + - ./values/{{ .canonicalRelease }}.yaml.gotmpl + {{- end -}} + {{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} + - {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} - - ./values/{{` "`{{ .Release.Name }}`" `}}.yaml + - {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -368,6 +471,5 @@ _templateBlocks: { - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - """ } diff --git a/src/schemas/ethereum.cue b/src/schemas/ethereum.cue index bba40914..daa1a653 100644 --- a/src/schemas/ethereum.cue +++ b/src/schemas/ethereum.cue @@ -33,6 +33,14 @@ package LaunchpadNamespaces #enum: ( #nimbus | #proxyd ) } + // ethereum scaling interface + #scaling: { + // number of independent stateful sets to deploy + deployments: *1 | int + // A beggining port for the range to use in P2P NodePorts + startP2PPort?: int + } + // ethereum namespace values schema #values: #base.#values & { // the default is eth- @@ -44,11 +52,16 @@ package LaunchpadNamespaces flavor?: *"mainnet" | #flavor.#enum + scaling?: #scaling + // For overriding this release's values for key, _ in releases { // For overriding this release's values (key)?: #base.#releaseValues } + + // For overriding this release's values + [string & "^(erigon|nimbus|proxyd)-[0-9]+$"]?: #base.#releaseValues } // ethereum helmfile API @@ -61,18 +74,21 @@ package LaunchpadNamespaces erigon: { chart: {_repositories.graphops.charts.erigon} _template: {version: "0.8.2"} + _scale: true } nimbus: { chart: {_repositories.graphops.charts.nimbus} feature: #features.#nimbus _template: {version: "0.5.2"} + _scale: true } proxyd: { chart: {_repositories.graphops.charts.proxyd} feature: #features.#proxyd _template: {version: "0.3.4-canary.4"} + _scale: false } } diff --git a/storage/README.md b/storage/README.md index b2d5bad3..ed899ea1 100644 --- a/storage/README.md +++ b/storage/README.md @@ -25,7 +25,7 @@ Manage Raw Kubernetes Resources using Helm - Actively maintained by [![GraphOps](https://avatars.githubusercontent.com/u/85314764?s=12&v=4) *GraphOps*](https://graphops.xyz) [and contributors](/graphs/contributors) - Common values interfaces across all namespaces -- Flexible and adaptable, allowing defaults to be overriden +- Flexible and adaptable, allowing defaults to be overridden - Two release channels: `stable` and `canary` - A large selection of Namespaces (listed below) @@ -38,7 +38,7 @@ To use *Namespaces* you will require both a [*Kubernetes*](https://kubernetes.io As such: - Make sure your *Kubernetes* *Cluster* is in order and your environment has the *kubeconfig* context adequately setup - Install *helmfile*, upstream guidance available here: [*Helmfile* Installation](https://github.com/helmfile/helmfile#installation) -– Install *kustomize*, upstream guidance availabe here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependencie for utilising *helmfile* features. +– Install *kustomize*, upstream guidance available here: [*Kustomize* Installation](https://kubectl.docs.kubernetes.io/installation/kustomize/). Although `launchpad–namespaces` doesn't explicitly use *kustomize*, it is a dependency for utilising *helmfile* features. Next, setup an `helmfile.yaml` file that makes use of the storage *Namespace* by creating it with the following contents: ```yaml @@ -81,7 +81,7 @@ helmfiles: where we add some labels to this *Namespace* releases, and set it to be deployed on cluster namespace different from default. -You can also easilly override values for every release, like so: +You can also easily override values for every release, like so: ```yaml helmfiles: - path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-latest diff --git a/storage/helmfile.yaml b/storage/helmfile.yaml index 4c4821df..f4155f07 100644 --- a/storage/helmfile.yaml +++ b/storage/helmfile.yaml @@ -1,3 +1,18 @@ + +# Define default features when undefined +{{ if not (hasKey .Values "features") }} +{{ $_ := set .Values "features" (list +`rawfile` +) }} +{{ end }} + + +environments: + {{ .Environment.Name }}: + values: + - features: {{ .Values.features | toYaml | nindent 10 }} + +--- {{- $_tplTransforms := ` {{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}} transformers: @@ -34,10 +49,20 @@ transformers: {{- $_tplReleaseValues := (print ` {{- if ( .Values | get .release dict | get "mergeValues" true ) -}} {{- if ( hasKey .Values "flavor" ) }} -- ./values/_common/{{` "`{{ .Release.Name }}`" `}}.yaml -- ./values/{{ .Values.flavor }}/{{` "`{{ .Release.Name }}`" `}}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml +- ./values/_common/{{ .canonicalRelease }}.yaml.gotmpl +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml +- ./values/{{ .Values.flavor }}/{{ .canonicalRelease }}.yaml.gotmpl +{{- else }} +- ./values/{{ .canonicalRelease }}.yaml +- ./values/{{ .canonicalRelease }}.yaml.gotmpl +{{- end -}} +{{- if typeIs ( typeOf list ) ( .Values | get .canonicalRelease dict | get "values" dict ) -}} + {{- range $element := ( .Values | get .canonicalRelease dict | get "values" dict ) }} +- {{- $element | toYaml | nindent 2 }} + {{- end -}} {{- else }} -- ./values/{{` "`{{ .Release.Name }}`" `}}.yaml +- {{- .Values | get .canonicalRelease dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} {{- end -}} {{- if typeIs ( typeOf list ) ( .Values | get .release dict | get "values" dict ) -}} @@ -48,7 +73,6 @@ transformers: - {{- .Values | get .release dict | get "values" dict | toYaml | nindent 2 }} {{- end -}} `) -}} - {{ $__helmDefaults := `{"recreatePods":true}` | fromJson }} {{ with ( .Values | get "helmDefaults" dict ) }} @@ -62,14 +86,6 @@ helmDefaults: kubeVersion: {{ .Values.kubeVersion }} {{ end }} - -# Define default features when undefined -{{ if not (hasKey .Values "features") }} -{{ $_ := set .Values "features" (list -`rawfile` -) }} -{{ end }} - #set default namespace {{ $_defaultNamespace := `storage` }} @@ -187,49 +203,61 @@ templates: version: "0.2.0" {{- end }} releases: + {{- $canonicalRelease := "openebs" }} {{- $release := "openebs" }} - - name: 'openebs' + - name: "{{ $release }}" inherit: - - template: 'openebs' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{ if has "rawfile" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "openebs-rawfile-localpv" }} {{- $release := "openebs-rawfile-localpv" }} - - name: 'openebs-rawfile-localpv' + - name: "{{ $release }}" inherit: - - template: 'openebs-rawfile-localpv' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "rawfile" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "openebs-rawfile-storageclass" }} {{- $release := "openebs-rawfile-storageclass" }} - - name: 'openebs-rawfile-storageclass' + - name: "{{ $release }}" inherit: - - template: 'openebs-rawfile-storageclass' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "zfs" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "openebs-zfs-localpv" }} {{- $release := "openebs-zfs-localpv" }} - - name: 'openebs-zfs-localpv' + - name: "{{ $release }}" inherit: - - template: 'openebs-zfs-localpv' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "zfs" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "openebs-zfs-storageclass" }} {{- $release := "openebs-zfs-storageclass" }} - - name: 'openebs-zfs-storageclass' + - name: "{{ $release }}" inherit: - - template: 'openebs-zfs-storageclass' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} {{ if has "zfs" ( .Values | get "features" list ) }} + {{- $canonicalRelease := "openebs-zfs-snapclass" }} {{- $release := "openebs-zfs-snapclass" }} - - name: 'openebs-zfs-snapclass' + - name: "{{ $release }}" inherit: - - template: 'openebs-zfs-snapclass' + - template: "{{ $canonicalRelease }}" values: - {{- tpl $_tplReleaseValues (dict "Values" .Values "release" $release) | indent 4 -}} + {{- tpl $_tplReleaseValues (dict "Values" $.Values "canonicalRelease" $canonicalRelease "release" $release) | indent 4 -}} + {{- end -}} diff --git a/yarn.lock b/yarn.lock index c0aaf947..182293ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -88,13 +88,13 @@ __metadata: languageName: node linkType: hard -"@commitlint/cli@npm:^17.6.5": - version: 17.6.6 - resolution: "@commitlint/cli@npm:17.6.6" +"@commitlint/cli@npm:^17.7.1": + version: 17.7.1 + resolution: "@commitlint/cli@npm:17.7.1" dependencies: "@commitlint/format": ^17.4.4 - "@commitlint/lint": ^17.6.6 - "@commitlint/load": ^17.5.0 + "@commitlint/lint": ^17.7.0 + "@commitlint/load": ^17.7.1 "@commitlint/read": ^17.5.1 "@commitlint/types": ^17.4.4 execa: ^5.0.0 @@ -104,32 +104,32 @@ __metadata: yargs: ^17.0.0 bin: commitlint: cli.js - checksum: 91c2d06bc181cb286634d963e28c71739642a94252dcf2bcd800dd3ac1d8708d8ccd195aa513a65df00fcde281a128ed763ac51f640771a11140930c5f259df8 + checksum: 2500a50514ab0629d3661d74e6f759f0b9b56c1992fbc101bb78a67033c6ed02a6dad3ae728f91f1f9b3034ae17e3808835957f885ab7129a421085d31f6cb23 languageName: node linkType: hard -"@commitlint/config-conventional@npm:^17.6.5": - version: 17.6.6 - resolution: "@commitlint/config-conventional@npm:17.6.6" +"@commitlint/config-conventional@npm:^17.7.0": + version: 17.7.0 + resolution: "@commitlint/config-conventional@npm:17.7.0" dependencies: - conventional-changelog-conventionalcommits: ^5.0.0 - checksum: 0f649a2cbe684aa18555cb0027c21f58d74216dbe0a850be041af50f1db04e447b7d90995bee54c61059d735b398de61ac7ecbfd312d14480aac3a3f8c62dd66 + conventional-changelog-conventionalcommits: ^6.1.0 + checksum: 932cf35c12855e360c750bc19ffedc0925f8658f316aaacdf5441ce775712934386643a9ac418f18e24e5bb1bf71ed721b8ae452a13d04908b0e55cd3d2d988f languageName: node linkType: hard -"@commitlint/config-validator@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/config-validator@npm:17.4.4" +"@commitlint/config-validator@npm:^17.6.7": + version: 17.6.7 + resolution: "@commitlint/config-validator@npm:17.6.7" dependencies: "@commitlint/types": ^17.4.4 ajv: ^8.11.0 - checksum: 71ee818608ed5c74832cdd63531c0f61b21758fba9f8b876205485ece4f047c9582bc3f323a20a5de700e3451296614d15448437270a82194eff7d71317b47ff + checksum: e13e512ce9dc788f7ce1c84faf4d2e2d4d3b7c4dc18a7982ecbfc33faa5fe977793efdb868e228061d34ea8825cbbed5fc9e8e69fd5e4f0c0c08f60e21a9214e languageName: node linkType: hard -"@commitlint/ensure@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/ensure@npm:17.4.4" +"@commitlint/ensure@npm:^17.6.7": + version: 17.6.7 + resolution: "@commitlint/ensure@npm:17.6.7" dependencies: "@commitlint/types": ^17.4.4 lodash.camelcase: ^4.3.0 @@ -137,7 +137,7 @@ __metadata: lodash.snakecase: ^4.1.1 lodash.startcase: ^4.4.0 lodash.upperfirst: ^4.3.1 - checksum: c21c189f22d8d3265e93256d101b72ef7cbdf8660438081799b9a4a8bd47d33133f250bbed858ab9bcc0d249d1c95ac58eddd9e5b46314d64ff049d0479d0d71 + checksum: 1ffdce807dbb303e8fa215511a965375abeea2702f64b4f1c4d7823f1e231cb343e82c97633d12d3c89b4f71d2eaf28169db08b4f1d3b052c26c942f4b9d9380 languageName: node linkType: hard @@ -158,37 +158,37 @@ __metadata: languageName: node linkType: hard -"@commitlint/is-ignored@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/is-ignored@npm:17.6.6" +"@commitlint/is-ignored@npm:^17.7.0": + version: 17.7.0 + resolution: "@commitlint/is-ignored@npm:17.7.0" dependencies: "@commitlint/types": ^17.4.4 - semver: 7.5.2 - checksum: ff5f8816765b3f2e9f16de32b1166dd099ab23793212bf4092203441fe3d9f282c80ed96cca5cd42b0ea96d899f8989bdaa6604a3f02bf4bd36b8c7c123968df + semver: 7.5.4 + checksum: aa0b695d6e7bee5e732f96a2ff383347ff476eb48f9d3b4ed75b098cafa27e56da15563833d3cf4e1268fc26819180cd8b5bdc322b087073a63bc94f699944b2 languageName: node linkType: hard -"@commitlint/lint@npm:^17.6.6": - version: 17.6.6 - resolution: "@commitlint/lint@npm:17.6.6" +"@commitlint/lint@npm:^17.7.0": + version: 17.7.0 + resolution: "@commitlint/lint@npm:17.7.0" dependencies: - "@commitlint/is-ignored": ^17.6.6 - "@commitlint/parse": ^17.6.5 - "@commitlint/rules": ^17.6.5 + "@commitlint/is-ignored": ^17.7.0 + "@commitlint/parse": ^17.7.0 + "@commitlint/rules": ^17.7.0 "@commitlint/types": ^17.4.4 - checksum: 8601cbfe037edd4aff38cf3929444e748499558dfb01a12f1e6067fb4496926711936cbd389cf792f5e3ea6b6900c6967ca5b56dc0555d75c71340ceddc6d076 + checksum: 72765e0f2c6b78faa1c7ceb1050ef624d505deb0f95c5ac2ce1959c3ee8c2ce579d4f5aaf9434adf244727a97653be4d7fbc0d75cda2d8915e563ebeb7b886ae languageName: node linkType: hard -"@commitlint/load@npm:^17.5.0": - version: 17.5.0 - resolution: "@commitlint/load@npm:17.5.0" +"@commitlint/load@npm:^17.7.1": + version: 17.7.1 + resolution: "@commitlint/load@npm:17.7.1" dependencies: - "@commitlint/config-validator": ^17.4.4 + "@commitlint/config-validator": ^17.6.7 "@commitlint/execute-rule": ^17.4.0 - "@commitlint/resolve-extends": ^17.4.4 + "@commitlint/resolve-extends": ^17.6.7 "@commitlint/types": ^17.4.4 - "@types/node": "*" + "@types/node": 20.4.7 chalk: ^4.1.0 cosmiconfig: ^8.0.0 cosmiconfig-typescript-loader: ^4.0.0 @@ -198,7 +198,7 @@ __metadata: resolve-from: ^5.0.0 ts-node: ^10.8.1 typescript: ^4.6.4 || ^5.0.0 - checksum: c039114b0ad67bb9d8b05ec635d847bd5ab760528f0fb203411f433585bdab5472f4f5c7856dfc417cf64c05576f54c1afc4997a813f529304e0156bfc1d6cc8 + checksum: 8d0e56b49a0e4dec7e8e28a2c6bc7ce985e6b8e10274aa20d0e3f6c2465fc9082d18f91bbe5c336594ebabcc4dc9668fdeaa039ef5bbfaf26ca0be423461ef61 languageName: node linkType: hard @@ -209,14 +209,14 @@ __metadata: languageName: node linkType: hard -"@commitlint/parse@npm:^17.6.5": - version: 17.6.5 - resolution: "@commitlint/parse@npm:17.6.5" +"@commitlint/parse@npm:^17.7.0": + version: 17.7.0 + resolution: "@commitlint/parse@npm:17.7.0" dependencies: "@commitlint/types": ^17.4.4 - conventional-changelog-angular: ^5.0.11 - conventional-commits-parser: ^3.2.2 - checksum: 579dd7b25d2b5a73817318259f4ce1191657fad8736047bcd84e2709bbe9bcb7458cbe66b6dc785e372c1c73a4563050027b94746ad0df16a89d90960a685517 + conventional-changelog-angular: ^6.0.0 + conventional-commits-parser: ^4.0.0 + checksum: d70d53932576fa30c078099fe9ab00190298ed6aec696648633ab16eb80386e0c1b407c44eb7c548b598573c260ed1bfa890dd8134166d28811f66ed436efbea languageName: node linkType: hard @@ -233,30 +233,30 @@ __metadata: languageName: node linkType: hard -"@commitlint/resolve-extends@npm:^17.4.4": - version: 17.4.4 - resolution: "@commitlint/resolve-extends@npm:17.4.4" +"@commitlint/resolve-extends@npm:^17.6.7": + version: 17.6.7 + resolution: "@commitlint/resolve-extends@npm:17.6.7" dependencies: - "@commitlint/config-validator": ^17.4.4 + "@commitlint/config-validator": ^17.6.7 "@commitlint/types": ^17.4.4 import-fresh: ^3.0.0 lodash.mergewith: ^4.6.2 resolve-from: ^5.0.0 resolve-global: ^1.0.0 - checksum: d7bf1ff1ad3db8750421b252d79cf7b96cf07d72cad8cc3f73c1363a8e68c0afde611d38ae6f213bbb54e3248160c6b9425578f3d0f8f790e84aea811d748b3e + checksum: 3717b4ccef6e46136f8d4a4b8d78d57184b4331401db07e27f89acb049a3903035bb2b0dbd4c07e3cdcc402cbe693b365c244a0da3df47e0f74cbf3ba76be9ec languageName: node linkType: hard -"@commitlint/rules@npm:^17.6.5": - version: 17.6.5 - resolution: "@commitlint/rules@npm:17.6.5" +"@commitlint/rules@npm:^17.7.0": + version: 17.7.0 + resolution: "@commitlint/rules@npm:17.7.0" dependencies: - "@commitlint/ensure": ^17.4.4 + "@commitlint/ensure": ^17.6.7 "@commitlint/message": ^17.4.2 "@commitlint/to-lines": ^17.4.0 "@commitlint/types": ^17.4.4 execa: ^5.0.0 - checksum: 7f62c594153df5daf15bf66254f8abd72f14f3f0e7bac91d0fc8229c357616a9d852b2dd050a15b3de83366a732a3363ec405d453d48b81cbaeccdd7013cb59f + checksum: bc6af55cb8fab82baac450f87e02fa51d91f44855aadced92d74d05f9af99ccfd90b08c67355b53ca6b4b45f386854bcf52e1a4e5bc003665f4873e785eb7c70 languageName: node linkType: hard @@ -360,10 +360,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 20.4.1 - resolution: "@types/node@npm:20.4.1" - checksum: 22cbcc792f2eb636fe4188778ed0f32658ab872aa7fcb9847b3fa289a42b14b9f5e30c6faec50ef3c7adbc6c2a246926e5858136bb8b10c035a3fcaa6afbeed2 +"@types/node@npm:20.4.7": + version: 20.4.7 + resolution: "@types/node@npm:20.4.7" + checksum: a40d7003f66b56220a2028179e49f950b46fa6dbf860a4a6ecbd6ba7976f05b2f0b31ced39689ec88a7d9e32d07e088c6a06d270b99d5bc13a28291ac2f30ca7 languageName: node linkType: hard @@ -374,7 +374,7 @@ __metadata: languageName: node linkType: hard -"JSONStream@npm:^1.0.4": +"JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" dependencies: @@ -605,40 +605,35 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:^5.0.11": - version: 5.0.13 - resolution: "conventional-changelog-angular@npm:5.0.13" +"conventional-changelog-angular@npm:^6.0.0": + version: 6.0.0 + resolution: "conventional-changelog-angular@npm:6.0.0" dependencies: compare-func: ^2.0.0 - q: ^1.5.1 - checksum: 6ed4972fce25a50f9f038c749cc9db501363131b0fb2efc1fccecba14e4b1c80651d0d758d4c350a609f32010c66fa343eefd49c02e79e911884be28f53f3f90 + checksum: ddc59ead53a45b817d83208200967f5340866782b8362d5e2e34105fdfa3d3a31585ebbdec7750bdb9de53da869f847e8ca96634a9801f51e27ecf4e7ffe2bad languageName: node linkType: hard -"conventional-changelog-conventionalcommits@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-changelog-conventionalcommits@npm:5.0.0" +"conventional-changelog-conventionalcommits@npm:^6.1.0": + version: 6.1.0 + resolution: "conventional-changelog-conventionalcommits@npm:6.1.0" dependencies: compare-func: ^2.0.0 - lodash: ^4.17.15 - q: ^1.5.1 - checksum: b67d12e4e0fdde5baa32c3d77af472de38646a18657b26f5543eecce041a318103092fbfcef247e2319a16957c9ac78c6ea78acc11a5db6acf74be79a28c561f + checksum: 4383a35cdf72f5964e194a1146e7f78276e301f73bd993b71627bb93586b6470d411b9613507ceb37e0fed0b023199c95e941541fa47172b4e6a7916fc3a53ff languageName: node linkType: hard -"conventional-commits-parser@npm:^3.2.2": - version: 3.2.4 - resolution: "conventional-commits-parser@npm:3.2.4" +"conventional-commits-parser@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-commits-parser@npm:4.0.0" dependencies: - JSONStream: ^1.0.4 + JSONStream: ^1.3.5 is-text-path: ^1.0.1 - lodash: ^4.17.15 - meow: ^8.0.0 - split2: ^3.0.0 - through2: ^4.0.0 + meow: ^8.1.2 + split2: ^3.2.2 bin: conventional-commits-parser: cli.js - checksum: 1627ff203bc9586d89e47a7fe63acecf339aba74903b9114e23d28094f79d4e2d6389bf146ae561461dcba8fc42e7bc228165d2b173f15756c43f1d32bc50bfd + checksum: 12d95b5ba8e0710a6d3cd2e01f01dd7818fdf0bb2b33f4b75444e2c9aee49598776b0706a528ed49e83aec5f1896c32cbc7f8e6589f61a15187293707448f928 languageName: node linkType: hard @@ -840,58 +835,58 @@ __metadata: languageName: node linkType: hard -"git-cliff-darwin-arm64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-darwin-arm64@npm:1.2.0" +"git-cliff-darwin-arm64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-darwin-arm64@npm:1.3.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"git-cliff-darwin-x64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-darwin-x64@npm:1.2.0" +"git-cliff-darwin-x64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-darwin-x64@npm:1.3.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"git-cliff-linux-arm64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-linux-arm64@npm:1.2.0" +"git-cliff-linux-arm64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-linux-arm64@npm:1.3.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"git-cliff-linux-x64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-linux-x64@npm:1.2.0" +"git-cliff-linux-x64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-linux-x64@npm:1.3.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"git-cliff-windows-arm64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-windows-arm64@npm:1.2.0" +"git-cliff-windows-arm64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-windows-arm64@npm:1.3.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"git-cliff-windows-x64@npm:1.2.0": - version: 1.2.0 - resolution: "git-cliff-windows-x64@npm:1.2.0" +"git-cliff-windows-x64@npm:1.3.0": + version: 1.3.0 + resolution: "git-cliff-windows-x64@npm:1.3.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"git-cliff@npm:^1.2.0": - version: 1.2.0 - resolution: "git-cliff@npm:1.2.0" - dependencies: - git-cliff-darwin-arm64: 1.2.0 - git-cliff-darwin-x64: 1.2.0 - git-cliff-linux-arm64: 1.2.0 - git-cliff-linux-x64: 1.2.0 - git-cliff-windows-arm64: 1.2.0 - git-cliff-windows-x64: 1.2.0 +"git-cliff@npm:^1.3.0": + version: 1.3.0 + resolution: "git-cliff@npm:1.3.0" + dependencies: + git-cliff-darwin-arm64: 1.3.0 + git-cliff-darwin-x64: 1.3.0 + git-cliff-linux-arm64: 1.3.0 + git-cliff-linux-x64: 1.3.0 + git-cliff-windows-arm64: 1.3.0 + git-cliff-windows-x64: 1.3.0 dependenciesMeta: git-cliff-darwin-arm64: optional: true @@ -907,7 +902,7 @@ __metadata: optional: true bin: git-cliff: lib/index.js - checksum: f9081a5fd13db895e95f5c72194a3a9d4dfdfddbae748384b5f15d97dd65f5002a4318f0491c9fda0e9b45f6ddeb634b98ff4751e51123946754642545248474 + checksum: 35f93d7b8082705f964f44045eda2390216c07bea642ff88da7c296a3ff5a7b028dc078035b6089278725e21d5772660bc9ef4fcbdbbe25938412feb78ed8bee languageName: node linkType: hard @@ -1170,9 +1165,9 @@ __metadata: version: 0.0.0-use.local resolution: "launchpad-namespaces@workspace:." dependencies: - "@commitlint/cli": ^17.6.5 - "@commitlint/config-conventional": ^17.6.5 - git-cliff: ^1.2.0 + "@commitlint/cli": ^17.7.1 + "@commitlint/config-conventional": ^17.7.0 + git-cliff: ^1.3.0 husky: ^8.0.3 swagger-cli: ^4.0.4 languageName: unknown @@ -1310,7 +1305,7 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0": +"meow@npm:^8.0.0, meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" dependencies: @@ -1509,13 +1504,6 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.5.1": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 147baa93c805bc1200ed698bdf9c72e9e42c05f96d007e33a558b5fdfd63e5ea130e99313f28efc1783e90e6bdb4e48b67a36fcc026b7b09202437ae88a1fb12 - languageName: node - linkType: hard - "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -1653,7 +1641,18 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.2, semver@npm:^7.3.4": +"semver@npm:7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"semver@npm:^7.3.4": version: 7.5.2 resolution: "semver@npm:7.5.2" dependencies: @@ -1728,7 +1727,7 @@ __metadata: languageName: node linkType: hard -"split2@npm:^3.0.0": +"split2@npm:^3.0.0, split2@npm:^3.2.2": version: 3.2.2 resolution: "split2@npm:3.2.2" dependencies: