Merge branch 'main' into dboreham/test-database-stack
This commit is contained in:
commit
c36f1e430f
20
stack_orchestrator/data/compose/docker-compose-mars.yml
Normal file
20
stack_orchestrator/data/compose/docker-compose-mars.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
version: "3.2"
|
||||||
|
|
||||||
|
services:
|
||||||
|
mars:
|
||||||
|
image: cerc/mars:local
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
- URL_OSMOSIS_GQL=https://osmosis-node.marsprotocol.io/GGSFGSFGFG34/osmosis-hive-front/graphql
|
||||||
|
- URL_OSMOSIS_REST=https://lcd-osmosis.blockapsis.com
|
||||||
|
- URL_OSMOSIS_RPC=https://rpc-osmosis.blockapsis.com
|
||||||
|
- URL_NEUTRON_GQL=https://neutron.rpc.p2p.world/qgrnU6PsQZA8F9S5Fb8Fn3tV3kXmMBl2M9bcc9jWLjQy8p/hive/graphql
|
||||||
|
- URL_NEUTRON_REST=https://rest-kralum.neutron-1.neutron.org
|
||||||
|
- URL_NEUTRON_RPC=https://rpc-kralum.neutron-1.neutron.org
|
||||||
|
- URL_NEUTRON_TEST_GQL=https://testnet-neutron-gql.marsprotocol.io/graphql
|
||||||
|
- URL_NEUTRON_TEST_REST=https://rest-palvus.pion-1.ntrn.tech
|
||||||
|
- URL_NEUTRON_TEST_RPC=https://rpc-palvus.pion-1.ntrn.tech
|
||||||
|
- WALLET_CONNECT_ID=0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
version: "3.2"
|
||||||
|
|
||||||
|
services:
|
||||||
|
ping-pub:
|
||||||
|
image: cerc/ping-pub:local
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "5173:5173"
|
@ -5,4 +5,4 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
|
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
|
||||||
ports:
|
ports:
|
||||||
- "3000"
|
- "80"
|
||||||
|
4
stack_orchestrator/data/container-build/cerc-mars/build.sh
Executable file
4
stack_orchestrator/data/container-build/cerc-mars/build.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build the mars image
|
||||||
|
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh
|
||||||
|
docker build -t cerc/mars:local -f ${CERC_REPO_BASE_DIR}/mars-interface/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/mars-interface
|
5
stack_orchestrator/data/container-build/cerc-ping-pub/build.sh
Executable file
5
stack_orchestrator/data/container-build/cerc-ping-pub/build.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build the ping pub image
|
||||||
|
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh
|
||||||
|
|
||||||
|
docker build -t cerc/ping-pub:local ${build_command_args} -f $CERC_REPO_BASE_DIR/explorer/Dockerfile $CERC_REPO_BASE_DIR/explorer
|
16
stack_orchestrator/data/stacks/mars/README.md
Normal file
16
stack_orchestrator/data/stacks/mars/README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# mars
|
||||||
|
|
||||||
|
On a fresh Digital Ocean droplet with Ubuntu:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/cerc-io/stack-orchestrator
|
||||||
|
cd stack-orchestrator
|
||||||
|
./scripts/quick-install-linux.sh
|
||||||
|
```
|
||||||
|
Read and follow the instructions output from the above output to complete installation, then:
|
||||||
|
|
||||||
|
```
|
||||||
|
laconic-so --stack mars setup-repositories
|
||||||
|
laconic-so --stack mars build-containers
|
||||||
|
laconic-so --stack mars deploy up
|
||||||
|
```
|
8
stack_orchestrator/data/stacks/mars/stack.yml
Normal file
8
stack_orchestrator/data/stacks/mars/stack.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version: "0.1"
|
||||||
|
name: mars
|
||||||
|
repos:
|
||||||
|
- github.com/cerc-io/mars-interface
|
||||||
|
containers:
|
||||||
|
- cerc/mars
|
||||||
|
pods:
|
||||||
|
- mars
|
10
stack_orchestrator/data/stacks/ping-pub/README.md
Normal file
10
stack_orchestrator/data/stacks/ping-pub/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# ping-pub
|
||||||
|
Experimental block explorer for laconic
|
||||||
|
|
||||||
|
```
|
||||||
|
laconic-so --stack ping-pub setup-repositories
|
||||||
|
laconic-so --stack ping-pub build-containers
|
||||||
|
laconic-so --stack ping-pub deploy init --output ping-pub-spec.yml --map-ports-to-host localhost-same
|
||||||
|
laconic-so --stack ping-pub deploy create --spec-file ping-pub-spec.yml --deployment-dir pp-deployment
|
||||||
|
laconic-so deployment --dir pp-deployment start
|
||||||
|
```
|
9
stack_orchestrator/data/stacks/ping-pub/stack.yml
Normal file
9
stack_orchestrator/data/stacks/ping-pub/stack.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
version: "0.1"
|
||||||
|
name: ping-pub
|
||||||
|
repos:
|
||||||
|
# fork, but only for config & Dockerfile reasonsb
|
||||||
|
- github.com/LaconicNetwork/explorer@laconic
|
||||||
|
containers:
|
||||||
|
- cerc/ping-pub
|
||||||
|
pods:
|
||||||
|
- ping-pub
|
@ -281,13 +281,37 @@ class ClusterInfo:
|
|||||||
env=envs,
|
env=envs,
|
||||||
ports=[client.V1ContainerPort(container_port=port)],
|
ports=[client.V1ContainerPort(container_port=port)],
|
||||||
volume_mounts=volume_mounts,
|
volume_mounts=volume_mounts,
|
||||||
|
security_context=client.V1SecurityContext(
|
||||||
|
privileged=self.spec.get_privileged(),
|
||||||
|
capabilities=client.V1Capabilities(
|
||||||
|
add=self.spec.get_capabilities()
|
||||||
|
) if self.spec.get_capabilities() else None
|
||||||
|
),
|
||||||
resources=to_k8s_resource_requirements(resources),
|
resources=to_k8s_resource_requirements(resources),
|
||||||
)
|
)
|
||||||
containers.append(container)
|
containers.append(container)
|
||||||
volumes = volumes_for_pod_files(self.parsed_pod_yaml_map, self.spec, self.app_name)
|
volumes = volumes_for_pod_files(self.parsed_pod_yaml_map, self.spec, self.app_name)
|
||||||
image_pull_secrets = [client.V1LocalObjectReference(name="laconic-registry")]
|
image_pull_secrets = [client.V1LocalObjectReference(name="laconic-registry")]
|
||||||
|
|
||||||
|
annotations = None
|
||||||
|
labels = {"app": self.app_name}
|
||||||
|
|
||||||
|
if self.spec.get_annotations():
|
||||||
|
annotations = {}
|
||||||
|
for key, value in self.spec.get_annotations().items():
|
||||||
|
for service_name in services:
|
||||||
|
annotations[key.replace("{name}", service_name)] = value
|
||||||
|
|
||||||
|
if self.spec.get_labels():
|
||||||
|
for key, value in self.spec.get_labels().items():
|
||||||
|
for service_name in services:
|
||||||
|
labels[key.replace("{name}", service_name)] = value
|
||||||
|
|
||||||
template = client.V1PodTemplateSpec(
|
template = client.V1PodTemplateSpec(
|
||||||
metadata=client.V1ObjectMeta(labels={"app": self.app_name}),
|
metadata=client.V1ObjectMeta(
|
||||||
|
annotations=annotations,
|
||||||
|
labels=labels
|
||||||
|
),
|
||||||
spec=client.V1PodSpec(containers=containers, image_pull_secrets=image_pull_secrets, volumes=volumes),
|
spec=client.V1PodSpec(containers=containers, image_pull_secrets=image_pull_secrets, volumes=volumes),
|
||||||
)
|
)
|
||||||
spec = client.V1DeploymentSpec(
|
spec = client.V1DeploymentSpec(
|
||||||
|
@ -106,3 +106,15 @@ class Spec:
|
|||||||
if self.obj and constants.network_key in self.obj
|
if self.obj and constants.network_key in self.obj
|
||||||
and constants.http_proxy_key in self.obj[constants.network_key]
|
and constants.http_proxy_key in self.obj[constants.network_key]
|
||||||
else None)
|
else None)
|
||||||
|
|
||||||
|
def get_annotations(self):
|
||||||
|
return self.obj.get("annotations", {})
|
||||||
|
|
||||||
|
def get_labels(self):
|
||||||
|
return self.obj.get("labels", {})
|
||||||
|
|
||||||
|
def get_privileged(self):
|
||||||
|
return "true" == str(self.obj.get("security", {}).get("privileged", "false")).lower()
|
||||||
|
|
||||||
|
def get_capabilities(self):
|
||||||
|
return self.obj.get("security", {}).get("capabilities", [])
|
||||||
|
@ -44,7 +44,7 @@ def _fixup_url_spec(spec_file_name: str, url: str):
|
|||||||
- host-name: {parsed_url.hostname}
|
- host-name: {parsed_url.hostname}
|
||||||
routes:
|
routes:
|
||||||
- path: '{parsed_url.path if parsed_url.path else "/"}'
|
- path: '{parsed_url.path if parsed_url.path else "/"}'
|
||||||
proxy-to: webapp:3000
|
proxy-to: webapp:80
|
||||||
'''
|
'''
|
||||||
spec_file_path = Path(spec_file_name)
|
spec_file_path = Path(spec_file_name)
|
||||||
with open(spec_file_path) as rfile:
|
with open(spec_file_path) as rfile:
|
||||||
|
@ -147,6 +147,7 @@ def command(ctx, laconic_config, deployment_parent_dir,
|
|||||||
|
|
||||||
previous_requests = load_known_requests(state_file)
|
previous_requests = load_known_requests(state_file)
|
||||||
requests.sort(key=lambda r: r.createTime)
|
requests.sort(key=lambda r: r.createTime)
|
||||||
|
requests.reverse()
|
||||||
|
|
||||||
# Find deployments.
|
# Find deployments.
|
||||||
deployments = {}
|
deployments = {}
|
||||||
|
@ -355,11 +355,13 @@ def generate_hostname_for_app(app):
|
|||||||
|
|
||||||
def skip_by_tag(r, include_tags, exclude_tags):
|
def skip_by_tag(r, include_tags, exclude_tags):
|
||||||
for tag in exclude_tags:
|
for tag in exclude_tags:
|
||||||
if tag and r.attributes.tags and tag in r.attributes.tags:
|
if r.attributes.tags and tag in r.attributes.tags:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
if include_tags:
|
||||||
for tag in include_tags:
|
for tag in include_tags:
|
||||||
if tag and (not r.attributes.tags or tag not in r.attributes.tags):
|
if r.attributes.tags and tag in r.attributes.tags:
|
||||||
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
Loading…
Reference in New Issue
Block a user