-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: add setup for neutron-query-relayer (#425)
* add docker setup for neutron-query-relayer * install unzip before using it * add inital configs for neutron-query-relayer * add neutron-query-relayer to values schema * rebase main, starship v2 * partial ss of neutron-query-relayer * intermediate state * update neutron query relayer startup process * update registry test to check ibc endpoint, add neutron-query-relayer for e2e tests
- Loading branch information
Showing
11 changed files
with
360 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#!/bin/bash | ||
|
||
REGISTRY_URL="$1" | ||
CHAIN_1="$2" | ||
CHAIN_2="$3" | ||
|
||
set -eux | ||
|
||
function connection_id() { | ||
CONNECTION_ID=$(curl -s $REGISTRY_URL/ibc/$CHAIN_1/$CHAIN_2 | jq -r ".chain_1.connection_id") | ||
echo $CONNECTION_ID | ||
} | ||
|
||
echo "Try to get connection id, if failed, wait for 2 seconds and try again" | ||
max_tries=20 | ||
while [[ max_tries -gt 0 ]] | ||
do | ||
id=$(connection_id) | ||
if [[ -n "$id" ]]; then | ||
echo "Found connection id: $id" | ||
exit 0 | ||
fi | ||
echo "Failed to get connection id. Sleeping for 2 secs. Tries left $max_tries" | ||
((max_tries--)) | ||
sleep 10 | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
starship/charts/devnet/templates/relayers/neutron-query-relayer/configmap.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{{- $keys := .Files.Get "configs/keys.json" | fromJson }} | ||
{{- range $relayer := .Values.relayers }} | ||
{{- if eq $relayer.type "neutron-query-relayer" }} | ||
{{ $defaultFile := $.Files.Get "defaults.yaml" | fromYaml }} | ||
{{ $relayer = include "devnet.fullrelayer" (dict "name" $relayer.name "file" $defaultFile "context" $) | fromJson }} | ||
{{ $tag := include "image.tag" $relayer.image }} | ||
--- | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: "{{ $relayer.fullname }}" | ||
data: | ||
{{- range $i, $chain := $relayer.chains }} | ||
{{ $fullchain := include "devnet.fullchain" (dict "name" $chain "file" $defaultFile "context" $) | fromJson }} | ||
{{- if eq $fullchain.name "neutron" }} | ||
relayer-neutron-chain-rpc-addr: "http://{{ $fullchain.hostname }}-genesis.{{ $.Release.Namespace }}.svc.cluster.local:26657" | ||
relayer-neutron-chain-rest-addr: "http://{{ $fullchain.hostname }}-genesis.{{ $.Release.Namespace }}.svc.cluster.local:1317" | ||
relayer-neutron-chain-home-dir: "{{ $fullchain.home }}" | ||
{{- else }} | ||
relayer-target-chain-rpc-addr: "http://{{ $fullchain.hostname }}-genesis.{{ $.Release.Namespace }}.svc.cluster.local:26657" | ||
{{- end }} | ||
{{- end }} | ||
relayer-registry-addresses: "" | ||
relayer-listen-addr: "127.0.0.1:9999" | ||
--- | ||
{{- end }} | ||
{{- end }} |
24 changes: 24 additions & 0 deletions
24
starship/charts/devnet/templates/relayers/neutron-query-relayer/service.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{{- range $relayer := .Values.relayers }} | ||
{{- if eq $relayer.type "neutron-query-relayer" }} | ||
{{ $defaultFile := $.Files.Get "defaults.yaml" | fromYaml }} | ||
{{ $defaultRelayer := get $defaultFile.defaultRelayers $relayer.type | default dict }} | ||
{{ $relayer = mergeOverwrite $defaultRelayer $relayer }} | ||
--- | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: {{ $relayer.type }}-{{ $relayer.name }} | ||
labels: | ||
app.kubernetes.io/name: {{ $relayer.type }}-{{ $relayer.name }} | ||
spec: | ||
clusterIP: None | ||
ports: | ||
- name: rest | ||
port: 3000 | ||
protocol: TCP | ||
targetPort: 9999 | ||
selector: | ||
app.kubernetes.io/name: {{ $relayer.type }}-{{ $relayer.name }} | ||
--- | ||
{{- end }} | ||
{{- end }} |
175 changes: 175 additions & 0 deletions
175
starship/charts/devnet/templates/relayers/neutron-query-relayer/statefulset.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
{{- range $relayer := .Values.relayers }} | ||
{{- if eq $relayer.type "neutron-query-relayer" }} | ||
{{ $defaultFile := $.Files.Get "defaults.yaml" | fromYaml }} | ||
{{ $relayer := include "devnet.fullrelayer" (dict "name" $relayer.name "file" $defaultFile "context" $) | fromJson }} | ||
{{ $relayerIndex := include "devnet.relayerindex" (dict "name" $relayer.name "context" $) }} | ||
{{ $initParams := dict "chains" $relayer.chains "port" $.Values.exposer.ports.rest "context" $ }} | ||
--- | ||
apiVersion: apps/v1 | ||
kind: StatefulSet | ||
metadata: | ||
name: {{ $relayer.fullname }} | ||
spec: | ||
serviceName: {{ $relayer.fullname }} | ||
replicas: {{ $relayer.replicas }} | ||
podManagementPolicy: "Parallel" | ||
revisionHistoryLimit: 3 | ||
selector: | ||
matchLabels: | ||
app.kubernetes.io/instance: relayer | ||
app.kubernetes.io/type: {{ $relayer.type }} | ||
app.kubernetes.io/name: {{ $relayer.fullname }} | ||
template: | ||
metadata: | ||
annotations: | ||
quality: release | ||
role: api-gateway | ||
sla: high | ||
tier: gateway | ||
labels: | ||
app.kubernetes.io/instance: relayer | ||
app.kubernetes.io/type: {{ $relayer.type }} | ||
app.kubernetes.io/name: {{ $relayer.fullname }} | ||
app.kubernetes.io/rawname: {{ $relayer.name }} | ||
app.kubernetes.io/version: {{ $.Chart.AppVersion }} | ||
spec: | ||
{{- include "imagePullSecrets" $relayer | indent 6 }} | ||
initContainers: | ||
{{/* Waits for all upstream chains before starting relayer, vai init containers */}} | ||
{{- include "devnet.init.wait" $initParams | indent 8 }} | ||
- name: init-relayer | ||
{{- range $i, $chain := $relayer.chains }} | ||
{{ $fullchain := include "devnet.fullchain" (dict "name" $chain "file" $defaultFile "context" $) | fromJson }} | ||
{{- if eq $fullchain.name "neutron" }} | ||
image: {{ $fullchain.image }} | ||
imagePullPolicy: {{ $.Values.images.imagePullPolicy }} | ||
env: | ||
- name: KEYS_CONFIG | ||
value: /keys/keys.json | ||
- name: RELAYER_DIR | ||
value: "{{ $fullchain.home }}" | ||
- name: RELAYER_INDEX | ||
value: "{{ $relayerIndex }}" | ||
- name: NAMESPACE | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: metadata.namespace | ||
command: | ||
- bash | ||
- "-c" | ||
- | | ||
set -ux | ||
echo "Adding key.... relayer" | ||
jq -r ".relayers[$RELAYER_INDEX].mnemonic" $KEYS_CONFIG | neutrond keys add relayer --recover --keyring-backend="test" | ||
DENOM="{{ $fullchain.denom }}" | ||
RLY_ADDR=$(neutrond keys show relayer -a --keyring-backend='test') | ||
echo "Transfer tokens to address $RLY_ADDR" | ||
echo "Transfer tokens to address $RLY_ADDR" | ||
bash -e /scripts/transfer-tokens.sh \ | ||
$RLY_ADDR \ | ||
$DENOM \ | ||
http://{{ $fullchain.hostname }}-genesis.$NAMESPACE.svc.cluster.local:8000/credit \ | ||
"{{ $fullchain.faucet.enabled }}" || true | ||
echo "Wait for connection id to be created" | ||
bash -e /scripts/ibc-connection.sh \ | ||
http://registry.$NAMESPACE.svc.cluster.local:8080 \ | ||
{{ index $relayer.chains 0 }} \ | ||
{{ index $relayer.chains 1 }} | ||
{{- end }} | ||
{{- end }} | ||
volumeMounts: | ||
- mountPath: /root | ||
name: relayer | ||
- mountPath: /configs | ||
name: relayer-config | ||
- mountPath: /keys | ||
name: keys | ||
- mountPath: /scripts | ||
name: scripts | ||
containers: | ||
- name: relayer | ||
image: {{ $relayer.image }} | ||
imagePullPolicy: {{ $.Values.images.imagePullPolicy }} | ||
env: | ||
- name: RELAYER_DIR | ||
value: /root/.hermes | ||
{{- range $key, $value := $relayer.config }} | ||
- name: {{ $key }} | ||
value: "{{ $value }}" | ||
{{- end }} | ||
- name: RELAYER_NEUTRON_CHAIN_SIGN_KEY_NAME | ||
value: relayer | ||
- name: RELAYER_NEUTRON_CHAIN_RPC_ADDR | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-neutron-chain-rpc-addr | ||
- name: RELAYER_NEUTRON_CHAIN_REST_ADDR | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-neutron-chain-rest-addr | ||
- name: RELAYER_NEUTRON_CHAIN_HOME_DIR | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-neutron-chain-home-dir | ||
- name: RELAYER_TARGET_CHAIN_RPC_ADDR | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-target-chain-rpc-addr | ||
- name: RELAYER_REGISTRY_ADDRESSES | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-registry-addresses | ||
- name: RELAYER_LISTEN_ADDR | ||
valueFrom: | ||
configMapKeyRef: | ||
name: "{{ $relayer.fullname }}" | ||
key: relayer-listen-addr | ||
- name: NAMESPACE | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: metadata.namespace | ||
command: | ||
- bash | ||
- "-c" | ||
- | | ||
RLY_INDEX=${HOSTNAME##*-} | ||
echo "Relayer Index: $RLY_INDEX" | ||
echo "Query connection id from registry service" | ||
CONNECTION_ID=$(curl -s -X GET curl http://registry.$NAMESPACE.svc.cluster.local:8080/ibc/{{ index $relayer.chains 0 }}/{{ index $relayer.chains 1 }} | jq -r ".chain_1.connection_id") | ||
echo "Connection ID: $CONNECTION_ID" | ||
RELAYER_NEUTRON_CHAIN_CONNECTION_ID=$CONNECTION_ID neutron_query_relayer start | ||
resources: {{- include "devnet.node.resources" ( dict "node" $relayer "context" $ ) | trim | nindent 12 }} | ||
securityContext: | ||
allowPrivilegeEscalation: false | ||
runAsUser: 0 | ||
volumeMounts: | ||
- mountPath: /root | ||
name: relayer | ||
- mountPath: /configs | ||
name: relayer-config | ||
volumes: | ||
- name: relayer | ||
emptyDir: { } | ||
- name: relayer-config | ||
configMap: | ||
name: "{{ $relayer.fullname }}" | ||
- name: keys | ||
configMap: | ||
name: keys | ||
- name: scripts | ||
configMap: | ||
name: setup-scripts | ||
--- | ||
{{- end }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.