Skip to content

Commit

Permalink
feat: refactor, add P2P Port support
Browse files Browse the repository at this point in the history
  • Loading branch information
cjorge-graphops committed Sep 27, 2023
1 parent 3e361f7 commit 41adefe
Show file tree
Hide file tree
Showing 20 changed files with 110 additions and 65 deletions.
5 changes: 3 additions & 2 deletions arbitrum/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions avalanche/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions celo/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
4 changes: 3 additions & 1 deletion ethereum/README.md
Expand Up @@ -109,7 +109,6 @@ helmfiles:
| Key | Type | Default | Description |
| :--- | :---: | :--- | :--- |
annotations | object | | Add annotations to releases on this namespace |
deployments | integer | 1 | ethereum scaling |
erigon | object | | |
erigon.annotations | object | | Add annotations to resources on this release |
erigon.chartUrl | string | | Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main) |
Expand All @@ -135,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-<flavor> |
helmDefaults | object | | |
helmDefaults.args | list of strings | | |
Expand Down
21 changes: 13 additions & 8 deletions ethereum/helmfile.yaml
Expand Up @@ -12,16 +12,21 @@
{{ end }}

#set default number of deployments when missing
{{ if not ( hasKey .Values "deployments" ) }}
{{ $_ := set .Values "deployments" 1 }}
{{ 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:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- features: {{ .Values.features | toYaml | nindent 10 }}
- deployments: {{ .Values.deployments }}
- flavor: {{ .Values.flavor }}
- features: {{ .Values.features | toYaml | nindent 10 }}
- scaling:
deployments: {{ .Values.scaling.deployments }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down Expand Up @@ -166,7 +171,7 @@ templates:
{{- end }}
releases:
{{- $canonicalRelease := "erigon" }}
{{- range $index := until .Values.deployments }}
{{- range $index := until .Values.scaling.deployments }}
{{- $deploymentIndex := (add . 1) }}
{{- $release := (printf "%s%v" "erigon-" $deploymentIndex) }}
- name: "{{ $release }}"
Expand All @@ -177,7 +182,7 @@ releases:
{{- end -}}
{{ if has "nimbus" ( .Values | get "features" list ) }}
{{- $canonicalRelease := "nimbus" }}
{{- range $index := until .Values.deployments }}
{{- range $index := until .Values.scaling.deployments }}
{{- $deploymentIndex := (add . 1) }}
{{- $release := (printf "%s%v" "nimbus-" $deploymentIndex) }}
- name: "{{ $release }}"
Expand Down
@@ -1,3 +1,5 @@
{{ $scalingIndex := splitList "-" .Release.Name | last }}

statefulNode:
jwt:
# Generate me with: openssl rand -hex 32
Expand All @@ -12,6 +14,10 @@ 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:
port: {{ add (mul (sub $scalingIndex 1) 2) .Values.scaling.p2pStartPort }}
{{- end }}

rpcdaemon:
enabled: true
Expand Down
8 changes: 6 additions & 2 deletions ethereum/values/_common/nimbus.yaml.gotmpl
@@ -1,6 +1,6 @@
nimbus:
{{ $deploymentIndex := splitList "-" .Release.Name | last }}
executionClientUrl: http://erigon-{{ $deploymentIndex }}-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
Expand All @@ -16,6 +16,10 @@ nimbus:
resources:
requests:
storage: 300Gi
{{- if (hasKey .Values.scaling "p2pStartPort") }}
p2pNodePort:
port: {{ add (mul (sub $scalingIndex 1) 2) .Values.scaling.p2pStartPort 1 }}
{{- end }}

prometheus:
serviceMonitors:
Expand Down
2 changes: 1 addition & 1 deletion ethereum/values/_common/proxyd.yaml.gotmpl
@@ -1,5 +1,5 @@
backends:
{{ range $elem := until .Values.deployments }}
{{ range $elem := until .Values.scaling.deployments }}
{{ $index := (add $elem 1) }}
erigon-{{ $index }}:
enabled: true
Expand Down
5 changes: 3 additions & 2 deletions gnosis/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions graph/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions ingress/helmfile.yaml
Expand Up @@ -9,9 +9,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- features: {{ .Values.features | toYaml | nindent 10 }}
- features: {{ .Values.features | toYaml | nindent 10 }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions monitoring/helmfile.yaml
Expand Up @@ -9,9 +9,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- features: {{ .Values.features | toYaml | nindent 10 }}
- features: {{ .Values.features | toYaml | nindent 10 }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
5 changes: 3 additions & 2 deletions polygon/helmfile.yaml
Expand Up @@ -6,9 +6,10 @@


environments:
default:
{{ .Environment.Name }}:
values:
- flavor: {{ .Values.flavor }}
- flavor: {{ .Values.flavor }}

---
{{- $_tplTransforms := `
{{- $_TemplatedResources := list "Deployment" "StatefulSet" "DaemonSet" -}}
Expand Down
4 changes: 2 additions & 2 deletions postgres-operator/helmfile.yaml
Expand Up @@ -2,8 +2,8 @@


environments:
default:
values:
{{ .Environment.Name }}:
values: []

---
{{- $_tplTransforms := `
Expand Down
27 changes: 20 additions & 7 deletions schema.json
Expand Up @@ -1683,11 +1683,6 @@
}
}
},
"namespaces.ethereum.deployments": {
"description": "ethereum scaling",
"type": "integer",
"default": 1
},
"namespaces.ethereum.features": {
"description": "ethereum namespace features schema",
"type": "object"
Expand Down Expand Up @@ -1770,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",
Expand Down Expand Up @@ -1798,8 +1811,8 @@
"nimbus": {
"$ref": "#/components/schemas/base.releaseValues"
},
"deployments": {
"$ref": "#/components/schemas/namespaces.ethereum.deployments"
"scaling": {
"$ref": "#/components/schemas/namespaces.ethereum.scaling"
},
"proxyd": {
"$ref": "#/components/schemas/base.releaseValues"
Expand Down
4 changes: 2 additions & 2 deletions sealed-secrets/helmfile.yaml
Expand Up @@ -2,8 +2,8 @@


environments:
default:
values:
{{ .Environment.Name }}:
values: []

---
{{- $_tplTransforms := `
Expand Down
2 changes: 1 addition & 1 deletion src/schemas/base.cue
Expand Up @@ -64,7 +64,7 @@ _#namespaceTemplate: {
targetNamespace: _key.#values.targetNamespace
if _key.#features != _|_ {features: [..._key.#features.#enum]}
if _key.#flavor != _|_ {flavor: _key.#flavor.#enum}
if _key.#deployments != _|_ {deployments: _key.#deployments}
if _key.#scaling != _|_ {scaling: deployments: _key.#scaling.deployments}
for rkey, _ in _key.releases {
(rkey): {
mergeValues: _key.#values.#releaseValues.mergeValues
Expand Down
41 changes: 21 additions & 20 deletions src/schemas/build_tool.cue
Expand Up @@ -56,8 +56,8 @@ _helmfile: {
_defaultFeatures: _helmfile._#defaultFeatures & {_namespace: this}
defaultFeatures: _defaultFeatures.out

_defaultDeployments: _helmfile._#defaultDeployments & {_namespace: this}
defaultDeployments: _defaultDeployments.out
_defaultScaling: _helmfile._#defaultScaling & {_namespace: this}
defaultScaling: _defaultScaling.out

_environment: _helmfile._#environment & {_namespace: this}
environment: _environment.out
Expand All @@ -80,7 +80,7 @@ _helmfile: {
out: strings.Join([
defaultFlavor,
defaultFeatures,
defaultDeployments,
defaultScaling,
environment,
"---",
_templateBlocks.transforms,
Expand Down Expand Up @@ -171,14 +171,17 @@ _helmfile: {
}
}

_#defaultDeployments: {
_#defaultScaling: {
this=_namespace: string
out: *"" | string
if _namespaces[this].values.deployments != _|_ {
if _namespaces[this].values.scaling != _|_ {
out: """
#set default number of deployments when missing
{{ if not ( hasKey .Values \"deployments\" ) }}
{{ $_ := set .Values \"deployments\" \(_namespaces[this].values.deployments) }}
{{ 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 }}
"""
Expand All @@ -190,23 +193,21 @@ _helmfile: {

_variables: {
if _namespaces[this].values.flavor != _|_ {
flavor: '{{ .Values.flavor }}'
flavor: "{{ .Values.flavor }}"
}
if _namespaces[this].values.features != _|_ {
features: '{{ .Values.features | toYaml | nindent 10 }}'
features: "{{ .Values.features | toYaml | nindent 10 }}"
}
if _namespaces[this].values.deployments != _|_ {
deployments: "{{ .Values.deployments }}"
if _namespaces[this].values.scaling != _|_ {
scaling: deployments: "{{ .Values.scaling.deployments }}"
}
}

_variableStrings: strings.Join([ for key, value in _variables {" - \(key): \(value)"}], "\n")
out: """
environments:
default:
values:
\(_variableStrings)
"""
_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: {
Expand Down Expand Up @@ -337,7 +338,7 @@ _helmfile: {
if scale {
header: """
{{- $canonicalRelease := "\(this)" }}
{{- range $index := until .Values.deployments }}
{{- range $index := until .Values.scaling.deployments }}
{{- $deploymentIndex := (add . 1) }}
{{- $release := (printf "%s%v" "\(this)-" $deploymentIndex) }}
"""
Expand Down Expand Up @@ -368,7 +369,7 @@ _helmfile: {
...
_release: releaseName
}}}
if _namespaces[this].values.deployments != _|_ {if release._scale {
if _namespaces[this].values.scaling.deployments != _|_ {if release._scale {
_props: {"\(releaseName)": {#properties: {
...
_scale: true
Expand Down

0 comments on commit 41adefe

Please sign in to comment.