Skip to content

Commit d95e654

Browse files
committed
Add env vars to k8s driver deployments. Enable pushing images from CI
1 parent 0ba3830 commit d95e654

File tree

5 files changed

+52
-8
lines changed

5 files changed

+52
-8
lines changed

.github/workflows/universal-resolver-build.yml

+2
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ jobs:
2222
env:
2323
DOCKER_FILE: uni-resolver-web/docker/Dockerfile
2424
CONTAINER_TAG: identitydotcom/uni-resolver-web:latest
25+
DOCKER_USERNAME : ${{ secrets.DOCKER_USERNAME }}
26+
DOCKER_PASSWORD : ${{ secrets.DOCKER_PASSWORD }}

ci/deploy-k8s-aws/scripts/k8s-template.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ spec:
3939
capabilities:
4040
drop:
4141
- NET_RAW
42+
{{environmentVariables}}
4243
{{configMapVolume}}
4344

4445
---

ci/deploy-k8s-aws/scripts/prepare-deployment.py

+41
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def generate_deployment_specs(containers, outputdir):
4646
for container in containers:
4747
container_tag = containers[container]['image']
4848
container_port = get_container_port(containers[container]['ports'])
49+
container_env = containers[container]['environment'] if 'environment' in containers[container] else None
4950
fin = open("k8s-template.yaml", "rt")
5051
deployment_file = "deployment-%s.yaml" % container
5152
fout = open(outputdir + '/' + deployment_file, "wt")
@@ -55,10 +56,50 @@ def generate_deployment_specs(containers, outputdir):
5556

5657
fin.close()
5758
fout.close()
59+
60+
add_driver_environment_variables(outputdir, container_env, container)
61+
5862
# If there is a configmap-<driver>.yaml file, create a ConfigMap for it and add a volumeMounts mapping for it:
5963
add_driver_configmap_volume(outputdir, container)
6064
add_deployment(deployment_file, outputdir)
6165

66+
def add_driver_environment_variables(outputdir, container_env, container):
67+
"""
68+
If the container has environment variables defined in the docker-compose file,
69+
add them here.
70+
NOTE: This does not support variable substitution
71+
"""
72+
73+
deployment_file = "deployment-%s.yaml" % container
74+
with open(outputdir + '/' + deployment_file, 'r') as infile:
75+
input_deployment_contents = infile.read()
76+
77+
configmap_filename = 'configmap-%s.yaml' % container
78+
configmap_path = '/app-specs/%s' % configmap_filename
79+
80+
if container_env is None:
81+
print('No environment variables found for driver ' + container)
82+
output_deployment_contents = input_deployment_contents.replace('{{environmentVariables}}', '')
83+
else:
84+
print('Environment variables found for driver ' + container + ' . Adding environment to the deployment yaml.')
85+
86+
# Write the environment definition to the driver Deployment spec:
87+
env_txt = 'env:\n'
88+
89+
for env_var in container_env:
90+
env_txt += ' - name: %s\n' % env_var
91+
env_txt += ' value: %s\n' % container_env[env_var]
92+
93+
print(env_txt)
94+
95+
output_deployment_contents = input_deployment_contents.replace('{{environmentVariables}}', env_txt)
96+
97+
# tmp
98+
print(output_deployment_contents)
99+
100+
with open(outputdir + '/' + deployment_file, 'w') as outfile:
101+
outfile.write(output_deployment_contents)
102+
62103
def add_driver_configmap_volume(outputdir, container):
63104
"""
64105
If there is a file named /app-specs/configmap-<container>.yaml for this driver,

ci/docker-build-push/entrypoint.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fi
3131

3232
if [ -z "${DOCKER_FILE}" ]
3333
then
34-
echo "No Dockerfile spectified. Using default file: Dockerfile"
34+
echo "No Dockerfile specified. Using default file: Dockerfile"
3535
DOCKER_FILE=Dockerfile
3636
fi
3737

docker-compose.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: "3.5"
22

3-
### NOTE - this file is used to generatee the Kubernetes pods
3+
### NOTE - this file is used to generate the Kubernetes pods
44
# Enable any DID drivers we want to support.
55
# If enabling drivers, check if special config needs to be uncommented in ci/scripts/driver-config.yaml
66
# or entrypoint.sh (e.g. bitcr)
@@ -85,10 +85,10 @@ services:
8585
# image: sphereon/driver-did-factom:latest
8686
# ports:
8787
# - "8097:8080"
88-
driver-did-key:
89-
image: universalresolver/driver-did-key:latest
90-
ports:
91-
- "8098:8080"
88+
# driver-did-key:
89+
# image: universalresolver/driver-did-key:latest
90+
# ports:
91+
# - "8098:8080"
9292
# dock-did-driver:
9393
# image: docknetwork/dock-did-driver:latest
9494
# ports:
@@ -200,8 +200,8 @@ services:
200200
driver-didkit:
201201
image: ghcr.io/spruceid/didkit-http:latest
202202
environment:
203-
PORT: 8080
204-
HOST: 0.0.0.0
203+
PORT: "8080"
204+
HOST: "0.0.0.0"
205205
ports:
206206
- "8121:8080"
207207
# eosio-driver:

0 commit comments

Comments
 (0)