mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 00:07:51 +00:00 
			
		
		
		
	add new deployment
This commit is contained in:
		
							parent
							
								
									7eda45c6d7
								
							
						
					
					
						commit
						a91f86cd72
					
				
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -18,6 +18,5 @@ vendor
 | 
			
		||||
*.sublime-project
 | 
			
		||||
*.sublime-workspace
 | 
			
		||||
 | 
			
		||||
# Exclude chain data
 | 
			
		||||
.kvd/
 | 
			
		||||
.kvcli/
 | 
			
		||||
# Exclude kubernetes secrets
 | 
			
		||||
deployment/secret*.yml
 | 
			
		||||
 | 
			
		||||
@ -2,18 +2,18 @@ To initialise a network:
 | 
			
		||||
 | 
			
		||||
 - delete everything (including persistant volume claim)
 | 
			
		||||
 - deploy everything except the deployments
 | 
			
		||||
 - wait until the job has finished, then deploy deployment-d
 | 
			
		||||
 - check job pod logs for the validator account backup phrase :(
 | 
			
		||||
 - use `kubectl exec` on the deployment-d pod and use gaiacli to recover the validator
 | 
			
		||||
 - do the same to add other keys and move tokens around
 | 
			
		||||
 - start up lcd pod (looks like only one instance of gaiacli can access the keys DB)
 | 
			
		||||
 - wait until the job has finished, then deploy the deployments
 | 
			
		||||
 | 
			
		||||
 Note on config
 | 
			
		||||
 | 
			
		||||
  - Secrets and configmaps need to be generated from files
 | 
			
		||||
  - Ideally everything would be in one file but kubectl doesn't scan directories yet: https://github.com/kubernetes/kubernetes/issues/62421
 | 
			
		||||
  - `kubectl create secret generic kava-user-keys --from-file=./init/init-data --dry-run -o yaml > secret-user.yml`
 | 
			
		||||
  - `kubectl create secret generic kava-node-config --from-file=./init/init-data/.kvd/config --dry-run -o yaml > secret-config.yml`
 | 
			
		||||
 | 
			
		||||
Examples of using light client with the node:
 | 
			
		||||
 | 
			
		||||
 - Get the status `gaiacli status --node <node's-ip-address>:46657 --chain-id kava`
 | 
			
		||||
 - Send coins `gaiacli send --name <your-key-name> --to <receiver's-address> --amount 10kavaToken --node <node's-ip-address>:46657 --chain-id kava`
 | 
			
		||||
 - Run the rest server `gaiacli rest-server --node <node's-ip-address>:46657 --chain-id kava`
 | 
			
		||||
 
 | 
			
		||||
Notes
 | 
			
		||||
 | 
			
		||||
 - There's two persistant volumes, for `.gaiad` and for `.gaiacli`, because their default locations are awkward.
 | 
			
		||||
 - Get the status `kvcli status --node <node's-url>:46657 --chain-id test-kava`
 | 
			
		||||
 - Send coins `kvcli send --name <your-key-name> --to <receiver's-address> --amount 100KVA --node <node's-url>:46657 --chain-id test-kava`
 | 
			
		||||
 - Run the light client daemon `kvcli rest-server --node <node's-url>:46657 --chain-id test-kava`
 | 
			
		||||
 
 | 
			
		||||
@ -1,35 +0,0 @@
 | 
			
		||||
apiVersion: apps/v1beta2
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-d-deployment
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app: kava-d
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: kava-d
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: gaiad
 | 
			
		||||
        image: kava/cosmos-sdk:ilp-demo
 | 
			
		||||
        command: ["gaiad", "start"]
 | 
			
		||||
        ports:
 | 
			
		||||
        - containerPort: 46656
 | 
			
		||||
        - containerPort: 46657
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - name: kava-persistent-storage-gaiad
 | 
			
		||||
          mountPath: /root/.gaiad
 | 
			
		||||
        - name: kava-persistent-storage-gaiacli
 | 
			
		||||
          mountPath: /root/.gaiacli
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: kava-persistent-storage-gaiad
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiad
 | 
			
		||||
      - name: kava-persistent-storage-gaiacli
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiacli
 | 
			
		||||
@ -1,34 +0,0 @@
 | 
			
		||||
apiVersion: apps/v1beta2
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-lcd-deployment
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app: kava-lcd
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: kava-lcd
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: gaiacli-lcd
 | 
			
		||||
        image: kava/cosmos-sdk:ilp-demo
 | 
			
		||||
        command: ["gaiacli", "rest-server", "--chain-id=kava", "--node=kava-d-service:46657", "--laddr=tcp://0.0.0.0:1317"]
 | 
			
		||||
        ports:
 | 
			
		||||
        - containerPort: 1317
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - name: kava-persistent-storage-gaiad
 | 
			
		||||
          mountPath: /root/.gaiad
 | 
			
		||||
        - name: kava-persistent-storage-gaiacli
 | 
			
		||||
          mountPath: /root/.gaiacli
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: kava-persistent-storage-gaiad
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiad
 | 
			
		||||
      - name: kava-persistent-storage-gaiacli
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiacli
 | 
			
		||||
							
								
								
									
										31
									
								
								deployment/deployments/deployment-d.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								deployment/deployments/deployment-d.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
apiVersion: apps/v1beta2
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-d-deployment2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      pod: kvd
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: kava
 | 
			
		||||
        pod: kvd
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: kvd
 | 
			
		||||
        image: kava/kava
 | 
			
		||||
        command: ["kvd", "start"]
 | 
			
		||||
        ports:
 | 
			
		||||
        - containerPort: 46656
 | 
			
		||||
        - containerPort: 46657
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - name: persistent-storage-kvd
 | 
			
		||||
          mountPath: /root/.kvd
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: persistent-storage-kvd
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-kvd2
 | 
			
		||||
							
								
								
									
										30
									
								
								deployment/deployments/deployment-lcd.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								deployment/deployments/deployment-lcd.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
apiVersion: apps/v1beta2
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-lcd-deployment2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      pod: kvcli-lcd
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: kava
 | 
			
		||||
        pod: kvcli-lcd
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: kvcli-lcd
 | 
			
		||||
        image: kava/kava
 | 
			
		||||
        command: ["kvcli", "rest-server", "--chain-id=test-kava", "--node=kava-d-service2:46657", "--laddr=tcp://0.0.0.0:1317"]
 | 
			
		||||
        ports:
 | 
			
		||||
        - containerPort: 1317
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - name: persistent-storage-kvcli
 | 
			
		||||
          mountPath: /root/.kvcli
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: persistent-storage-kvcli
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-kvcli2
 | 
			
		||||
							
								
								
									
										5
									
								
								deployment/init/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								deployment/init/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
FROM kava/kava
 | 
			
		||||
WORKDIR /
 | 
			
		||||
COPY init.sh ./
 | 
			
		||||
# Expects init data to be mounted at /init-data
 | 
			
		||||
CMD ["sh", "init.sh"]
 | 
			
		||||
							
								
								
									
										19
									
								
								deployment/init/init.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								deployment/init/init.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
# Setup node and light client.
 | 
			
		||||
echo "This assumes you have wiped old data"
 | 
			
		||||
 | 
			
		||||
echo "copying kvd config to the default location ($HOME/.kvd)"
 | 
			
		||||
initData=./init-data
 | 
			
		||||
cp -vR $initData/.kvd/. $HOME/.kvd/ # copy contents of .kvd into .kvd, creating dir if necessary
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "setup validator key from seed"
 | 
			
		||||
validatorPassword="$(cat $initData/validatorPassword)"
 | 
			
		||||
echo $validatorPassword
 | 
			
		||||
validatorBackupPhrase="$(cat $initData/validatorBackupPhrase)"
 | 
			
		||||
printf "$validatorPassword\n$validatorBackupPhrase\n" | kvcli keys add --recover validator
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "setup user1 key from seed"
 | 
			
		||||
user1Password="$(cat ./init-data/user1Password)"
 | 
			
		||||
user1BackupPhrase="$(cat ./init-data/user1BackupPhrase)"
 | 
			
		||||
printf "$user1Password\n$user1BackupPhrase\n" | kvcli keys add --recover user1
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
apiVersion: batch/v1
 | 
			
		||||
kind: Job
 | 
			
		||||
metadata:
 | 
			
		||||
  name: start-new-chain-job
 | 
			
		||||
  name: kava-init-data2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
@ -9,18 +9,28 @@ spec:
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: run-init
 | 
			
		||||
        image: kava/cosmos-sdk:ilp-demo
 | 
			
		||||
        command: ["gaiad", "init", "--chain-id", "kava", "--name", "kava"]
 | 
			
		||||
        image: kava/kava-init
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - name: kava-persistent-storage-gaiad
 | 
			
		||||
          mountPath: /root/.gaiad
 | 
			
		||||
        - name: kava-persistent-storage-gaiacli
 | 
			
		||||
          mountPath: /root/.gaiacli
 | 
			
		||||
        - name: kava-persistent-storage-kvd
 | 
			
		||||
          mountPath: /root/.kvd
 | 
			
		||||
        - name: kava-persistent-storage-kvcli
 | 
			
		||||
          mountPath: /root/.kvcli
 | 
			
		||||
        - name: user-keys
 | 
			
		||||
          mountPath: /init-data/
 | 
			
		||||
        - name: node-config
 | 
			
		||||
          mountPath: /init-data/.kvd/config/
 | 
			
		||||
      restartPolicy: Never
 | 
			
		||||
      volumes:
 | 
			
		||||
      - name: kava-persistent-storage-gaiad
 | 
			
		||||
      - name: kava-persistent-storage-kvd
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiad
 | 
			
		||||
      - name: kava-persistent-storage-gaiacli
 | 
			
		||||
          claimName: kava-pvc-kvd2
 | 
			
		||||
      - name: kava-persistent-storage-kvcli
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: kava-pvc-gaiacli
 | 
			
		||||
          claimName: kava-pvc-kvcli2
 | 
			
		||||
      - name: user-keys
 | 
			
		||||
        secret:
 | 
			
		||||
          secretName: kava-user-keys
 | 
			
		||||
      - name: node-config
 | 
			
		||||
        secret:
 | 
			
		||||
          secretName: kava-node-config
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-d-service
 | 
			
		||||
  name: kava-d-service2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
@ -16,12 +16,12 @@ spec:
 | 
			
		||||
      protocol: TCP
 | 
			
		||||
      targetPort: 46656
 | 
			
		||||
  selector:
 | 
			
		||||
    app: kava-d
 | 
			
		||||
    pod: kvd
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-lcd-service
 | 
			
		||||
  name: kava-lcd-service2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
@ -32,4 +32,4 @@ spec:
 | 
			
		||||
      protocol: TCP
 | 
			
		||||
      targetPort: 1317
 | 
			
		||||
  selector:
 | 
			
		||||
    app: kava-lcd
 | 
			
		||||
    pod: kvcli-lcd
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: PersistentVolumeClaim
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-pvc-gaiad
 | 
			
		||||
  name: kava-pvc-kvd2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
@ -14,7 +14,7 @@ spec:
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: PersistentVolumeClaim
 | 
			
		||||
metadata:
 | 
			
		||||
  name: kava-pvc-gaiacli
 | 
			
		||||
  name: kava-pvc-kvcli2
 | 
			
		||||
  labels:
 | 
			
		||||
    app: kava
 | 
			
		||||
spec:
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,16 @@ services:
 | 
			
		||||
    ports:
 | 
			
		||||
      - 46657:46657
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./.kvd:/root/.kvd
 | 
			
		||||
      - ./.kvcli:/root/.kvcli
 | 
			
		||||
      - ~/.kvd:/root/.kvd
 | 
			
		||||
      - ~/.kvcli:/root/.kvcli
 | 
			
		||||
    # Avoid printing out all the tendermint logs
 | 
			
		||||
    logging:
 | 
			
		||||
      driver: "none"
 | 
			
		||||
  lcd:
 | 
			
		||||
    image: kava/kava
 | 
			
		||||
    command: "kvcli rest-server --chain-id test-kava-1 --node kvd:46657 --laddr tcp://0.0.0.0:1317"
 | 
			
		||||
    command: "kvcli rest-server --chain-id test-kava --node kvd:46657 --laddr tcp://0.0.0.0:1317"
 | 
			
		||||
    ports:
 | 
			
		||||
      - 1317:1317
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./.kvd:/root/.kvd
 | 
			
		||||
      - ./.kvcli:/root/.kvcli
 | 
			
		||||
      - ~/.kvd:/root/.kvd
 | 
			
		||||
      - ~/.kvcli:/root/.kvcli
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user