Skip to content

Commit 33f6bc0

Browse files
committed
Cleaning, fixing Elgamal parameter set, run jwt-keypair post install, tls
1 parent 76d4c35 commit 33f6bc0

18 files changed

+159
-230
lines changed

Dockerfile

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
77
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
88
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
99

10-
RUN echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
11-
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
12-
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
13-
1410
# Set the working directory
1511
WORKDIR /var/www/html
1612

@@ -33,6 +29,6 @@ RUN chown -R www-data:www-data .
3329

3430
# Install project dependencies
3531
RUN composer install
36-
RUN composer dump-autoload -o
32+
RUN composer dump-autoload
3733

3834
RUN php artisan storage:link

README.md

Lines changed: 6 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,24 @@ helm repo update
2525
helm install ingress-nginx ingress-nginx/ingress-nginx
2626
# wait some time!
2727

28-
# Install a private registry
29-
cd setup/registry
30-
./install.sh install
31-
# ./uninstall.sh
32-
33-
# Create regcred in node namespace
34-
./setup/registry/install.sh regcred <namespace>
35-
3628
```
3729

3830
# Install
3931

4032
```shell
41-
4233
docker build -t biscofil/kairos_php:webserver .
4334
docker tag biscofil/kairos_php:webserver biscofil/kairos_php:webserver-1.0.0
44-
docker push biscofil/kairos_php:webserver-1.0.0
35+
kind load docker-image biscofil/kairos_php:webserver-1.0.0
4536

46-
docker tag biscofil/kairos_php:webserver docker-registry.127.0.0.1.nip.io/kairos_php:webserver-1.0.0
37+
docker tag biscofil/kairos_php:webserver docker.io/kairos_php:webserver-1.0.0
4738
# echo registryPass | docker login -u admin docker-registry.127.0.0.1.nip.io --password-stdin
48-
docker push docker-registry.127.0.0.1.nip.io/kairos_php:webserver-1.0.0
39+
kind load docker-image docker.io/kairos_php:webserver-1.0.0
4940

5041
# SSL
5142

5243
./cert.sh
5344

5445
openssl req -x509 -nodes -days 2 -newkey rsa:2048 -keyout ingress-tls.key -out ingress-tls.crt -subj "/CN=kairos-webserver.127.0.0.1.nip.io"
55-
5646
kubectl delete secret my-tls-secret
5747
kubectl create secret tls my-tls-secret --key ingress-tls.key --cert ingress-tls.crt
5848
rm ingress-tls.key ingress-tls.crt
@@ -63,10 +53,9 @@ helm package helm
6353

6454
# Deploy one node
6555
kubectl create ns node1
66-
# TODO generate random values in helm_secret.ini
67-
# php artisan key:generate
68-
# php artisan generate:jwt-keypair
69-
56+
# generate random values into helm_secret.ini
57+
python3 generate_secret_ini_file.py
58+
# TODO: manually insert missing values in helm_secret.ini
7059
kubectl create secret generic kairos-secrets --from-env-file=helm_secret.ini --namespace node1
7160
helm install kairos Kairos-0.1.0.tgz --namespace node1 -f values.yaml
7261
helm upgrade kairos Kairos-0.1.0.tgz --namespace node1 -f values.yaml
@@ -82,59 +71,6 @@ helm upgrade kairos Kairos-0.1.0.tgz --namespace node1 -f values.yaml
8271
- remove folder creation in docker image
8372
- adapt `php artisan generate:jwt-keypair` to kubernertes
8473

85-
# Legacy (deprecated)
86-
87-
```shell
88-
#install docker (https://docs.docker.com/engine/install/ubuntu/)
89-
sudo apt-get update
90-
sudo apt-get install \
91-
apt-transport-https \
92-
ca-certificates \
93-
curl \
94-
gnupg \
95-
lsb-release
96-
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
97-
echo \
98-
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
99-
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
100-
sudo apt-get update
101-
sudo apt-get install docker-ce docker-ce-cli containerd.io
102-
103-
# install docker-compose (https://docs.docker.com/compose/install/)
104-
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
105-
sudo chmod +x /usr/local/bin/docker-compose
106-
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
107-
108-
109-
# disable SSL commenting 000-default.conf
110-
mkdir helios
111-
112-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose up -d
113-
docker pull certbot/certbot
114-
# RUN docker run -it --rm -v $(pwd)/letsencrypt/c.....
115-
# enable SSL commenting 000-default.conf
116-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose down
117-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose up -d
118-
# php artisan key:generate
119-
# php artisan generate:jwt-keypair
120-
# php artisan storage:link
121-
```
122-
123-
# Adding SSL to the server domain.xyz (deprecated)
124-
125-
```shell
126-
docker pull certbot/certbot
127-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose build
128-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose up -d
129-
U_ID=$(id -u $USER) G_ID=$(id -u $USER) docker-compose down
130-
docker run -it --rm -v $(pwd)/letsencrypt/certs:/etc/letsencrypt -v $(pwd)/letsencrypt/data:/data/letsencrypt \
131-
certbot/certbot certonly \
132-
--webroot \
133-
--webroot-path=/data/letsencrypt \
134-
-d domain.xyz \
135-
--email your@email.com \
136-
--agree-tos
137-
```
13874

13975
# Docker changes (deprecated)
14076

app/Voting/CryptoSystems/ElGamal/EGParameterSet.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,14 @@ public function __construct(BigInteger $g, BigInteger $p, BigInteger $q)
4848
}
4949

5050
/**
51-
*
51+
* TODO these can change, from one peer to the other
52+
* TODO share your parameter with others
5253
*/
5354
public static function getDefault(): self
5455
{
5556
$p = BI(config('kairos.elgamal.p'), config('kairos.elgamal.base')); // prime p
56-
// NOTE: Q,G are inverted!!!
57-
$g = BI(config('kairos.elgamal.q'), config('kairos.elgamal.base'));
58-
// NOTE: Q,G are inverted!!!
59-
$q = BI(config('kairos.elgamal.g'), config('kairos.elgamal.base'));
57+
$g = BI(config('kairos.elgamal.g'), config('kairos.elgamal.base'));
58+
$q = BI(config('kairos.elgamal.q'), config('kairos.elgamal.base'));
6059
return new static($g, $p, $q);
6160
}
6261

generate_secret_ini_file.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import secrets
2+
import string
3+
import base64
4+
import logging
5+
6+
7+
def generate_password(size):
8+
# Generate a secure password
9+
alphabet = string.ascii_letters + string.digits # + string.punctuation
10+
return ''.join(secrets.choice(alphabet) for i in range(size))
11+
12+
def generate_base64_password(size):
13+
binary_string = secrets.token_bytes(size)
14+
return base64.b64encode(binary_string).decode()
15+
16+
config = {}
17+
with open("helm_secret.ini.example", "r") as f:
18+
for line in f.readlines():
19+
try:
20+
if not line.strip():
21+
continue
22+
if "=" not in line:
23+
key=line
24+
value=""
25+
else:
26+
key, value = line.split('=')
27+
key = key.strip()
28+
value = value.strip()
29+
config[key] = value
30+
except ValueError:
31+
# syntax error
32+
logging.error(f"Syntax error in line: {line}")
33+
pass
34+
35+
config['JWT_SECRET'] = generate_password(64)
36+
config['DB_PASSWORD'] = generate_password(32)
37+
config['APP_KEY'] = 'base64:' + generate_base64_password(64)
38+
39+
with open("helm_secret.ini", "w") as f:
40+
for key, value in config.items():
41+
f.write(f"{key}={value}\n")

helm/templates/db-env-configmap.yaml renamed to helm/templates/database-env-configmap.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ data:
88
MYSQL_DATABASE: laravel
99
# MYSQL_ROOT_PASSWORD: from secret
1010
SERVICE_NAME: mysql
11-
SERVICE_TAGS: dev
11+
SERVICE_TAGS: dev

helm/templates/job-init.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: kairos-init
5+
annotations:
6+
"helm.sh/hook": post-install
7+
"helm.sh/hook-delete-policy": hook-succeeded
8+
spec:
9+
template:
10+
spec:
11+
initContainers:
12+
- name: init-cont
13+
image: busybox:1.31
14+
command: ['sh', '-c', 'echo -e "Checking for the availability of MySQL Server deployment"; while ! nc -z {{.Values.database.serviceName}} 3306; do sleep 1; printf "-"; done; echo -e " >> MySQL DB Server has started";']
15+
containers:
16+
- image: "{{ .Values.image }}:{{ .Chart.AppVersion }}"
17+
imagePullPolicy: Always
18+
name: kairos-init
19+
envFrom:
20+
- configMapRef:
21+
name: kairos-webserver-env
22+
- secretRef:
23+
name: kairos-secrets
24+
command: ["/bin/sh"]
25+
args:
26+
- -c
27+
- >-
28+
php artisan generate:jwt-keypair
29+
resources:
30+
requests:
31+
ephemeral-storage: "100Mi"
32+
restartPolicy: Never
33+
volumes:
34+
- name: kairos-webserver-claim
35+
persistentVolumeClaim:
36+
claimName: kairos-webserver-claim
37+
backoffLimit: 1

helm/templates/webserver-env-configmap.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ data:
6565
# FACEBOOK_CLIENT_SECRET: from secret
6666

6767
# base 16
68-
# ELGAMAL_G: from secret
69-
# ELGAMAL_P: from secret
70-
# ELGAMAL_Q: from secret
68+
# TODO these should change
69+
ELGAMAL_G: 75ee80f0a161dd0c025ac818db8d52d193a46655fe0ebd3c289a949f42185f58f2f88f825dcdb3e3e98c0598af87599728f4f0719a8f68b133e82eb1bc4e3b6b8a377a5c6b812d656efcde578fdf515ac6ef628f1564ac907745d53bc6213b74f0cc303bbe68f3ab2220dcacd0ceece7aac3a675aaa0604885a1fb1374e6c08f2dcf503e58ac6487be73b8ab2a10fa62a79522cbc777b6321fd346e0d36ee5a7291955117d8bb4284901eb26804bd2286a14af52f5301c489c80dfeafb7ce496af58479a4c6f57f29ec8c9e4f6b88deb06f5d120859d2d4de06e57b0476f8263f7a4a35f67ed21a4a927109fa89a6b7f4976e98e3ddb3cd232c516b1da5cc555
70+
ELGAMAL_P: 815901aa6d3ced6a0bd488c617351e322c8aef8f9f90adf331a2583d8082ac46f74345a1e1cf561facbdf3239bc3f0ee71618b5d016266caafd48439b034a38f6560cd6b671e3a80248b46809ad8de7a4cc7250469611d59dae8d8af5c6d0f9f3665f9857e04e1134dc94b270e93341449ea503617447ecb83b2c01602878c070d080da464c974d9951c35c1a553407345ee31ebc4a29a3488d5a54702a971ee0a1ea4da93fcf64105040893ff4bec23ca11e8cffa279e899a46891137c28e85f5a2fc9c637af6d26f6b5deba3d60580df41c334ea123331f8b0adeb43ea64a037e0c5ac168c47ce421bc9718ba8357099a0221f778599acd917607f3e3024d7
71+
ELGAMAL_Q: 87974deb793421ce3891540d906ac0806b85a2b95adc211a82ef8b659f8d9d25
7172

helm/templates/webserver-ingress.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ metadata:
66
name: kairos-ingress
77
spec:
88
ingressClassName: nginx
9-
# tls:
10-
# - hosts:
11-
# - {{ .Values.host }}
12-
# secretName: my-tls-secret
9+
tls:
10+
- hosts:
11+
- {{ .Values.host }}
12+
secretName: docker-registry-tls-secret
1313
rules:
1414
- host: "{{ .Values.host }}"
1515
http:

helm_secret.ini.example

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,3 @@ GOOGLE_CLIENT_SECRET=
1212

1313
FACEBOOK_CLIENT_ID=
1414
FACEBOOK_CLIENT_SECRET=
15-
16-
# base 10
17-
#ELGAMAL_P=16328632084933010002384055033805457329601614771185955389739167309086214800406465799038583634953752941675645562182498120750264980492381375579367675648771293800310370964745767014243638518442553823973482995267304044326777047662957480269391322789378384619428596446446984694306187644767462460965622580087564339212631775817895958409016676398975671266179637898557687317076177218843233150695157881061257053019133078545928983562221396313169622475509818442661047018436264806901023966236718367204710755935899013750306107738002364137917426595737403871114187750804346564731250609196846638183903982387884578266136503697493474682071
18-
#ELGAMAL_G=61329566248342901292543872769978950870633559608669337131139375508370458778917
19-
#ELGAMAL_Q=14887492224963187634282421537186040801304008017743492304481737382571933937568724473847106029915040150784031882206090286938661464458896494215273989547889201144857352611058572236578734319505128042602372864570426550855201448111746579871811249114781674309062693442442368697449970648232621880001709535143047913661432883287150003429802392229361583608686643243349727791976247247948618930423866180410558458272606627111270040091203073580238905303994472202930783207472394578498507764703191288249547659899997131166130259700604433891232298182348403175947450284433411265966789131024573629546048637848902243503970966798589660808533
20-
21-
# base 16
22-
ELGAMAL_G=87974deb793421ce3891540d906ac0806b85a2b95adc211a82ef8b659f8d9d25
23-
ELGAMAL_P=815901aa6d3ced6a0bd488c617351e322c8aef8f9f90adf331a2583d8082ac46f74345a1e1cf561facbdf3239bc3f0ee71618b5d016266caafd48439b034a38f6560cd6b671e3a80248b46809ad8de7a4cc7250469611d59dae8d8af5c6d0f9f3665f9857e04e1134dc94b270e93341449ea503617447ecb83b2c01602878c070d080da464c974d9951c35c1a553407345ee31ebc4a29a3488d5a54702a971ee0a1ea4da93fcf64105040893ff4bec23ca11e8cffa279e899a46891137c28e85f5a2fc9c637af6d26f6b5deba3d60580df41c334ea123331f8b0adeb43ea64a037e0c5ac168c47ce421bc9718ba8357099a0221f778599acd917607f3e3024d7
24-
ELGAMAL_Q=75ee80f0a161dd0c025ac818db8d52d193a46655fe0ebd3c289a949f42185f58f2f88f825dcdb3e3e98c0598af87599728f4f0719a8f68b133e82eb1bc4e3b6b8a377a5c6b812d656efcde578fdf515ac6ef628f1564ac907745d53bc6213b74f0cc303bbe68f3ab2220dcacd0ceece7aac3a675aaa0604885a1fb1374e6c08f2dcf503e58ac6487be73b8ab2a10fa62a79522cbc777b6321fd346e0d36ee5a7291955117d8bb4284901eb26804bd2286a14af52f5301c489c80dfeafb7ce496af58479a4c6f57f29ec8c9e4f6b88deb06f5d120859d2d4de06e57b0476f8263f7a4a35f67ed21a4a927109fa89a6b7f4976e98e3ddb3cd232c516b1da5cc555
25-

setup/cluster/cluster-config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kind: Cluster
2+
apiVersion: kind.x-k8s.io/v1alpha4
3+
name: kind-server

0 commit comments

Comments
 (0)