Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phase08 #9

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Phase-08/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*-secret.yaml
*-secret.yml
*-secrets.yml
*-secrets.yaml
23 changes: 23 additions & 0 deletions Phase-08/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Prepare the secrets

### Copy the example secrets
```bash
cp api-secret.yaml.example api-secret.yaml
cp redis-secret.yaml.example redis-secret.yaml
cp repo-secret.yaml.example repo-secret.yaml
```

### Set your ghcr.io credentials
```bash
vim repo-secret.yaml
```

### Apply the whole directory
```bash
kubectl apply -f .
```

### Monitor
```bash
kubectl get all -n traceroute
```
8 changes: 8 additions & 0 deletions Phase-08/api-secret.yaml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: api-secrets
namespace: traceroute
type: Opaque
data:
redis-conn-str: cmVkaXM6Ly9kZWZhdWx0Ok15U2VjcmV0UGFzc3dvcmRAcmVkaXM6NjM3OQ==
14 changes: 14 additions & 0 deletions Phase-08/api-servide.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: api
namespace: traceroute
spec:
type: NodePort

selector:
app: api
ports:
- port: 80
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

طبق صحبتمون این هم درست بشه.

targetPort: 8080
nodePort: 30001
36 changes: 36 additions & 0 deletions Phase-08/api.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
namespace: traceroute
spec:
replicas: 1
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
imagePullSecrets:
- name: repo-secret

containers:
- name: api
image: ghcr.io/star-academy/summer1403-devops-team12/traceroute-api

resources:
limits:
memory: "128Mi"
cpu: "256m"

ports:
- containerPort: 8080

env:
- name: REDIS_CONN_STR
valueFrom:
secretKeyRef:
name: api-secrets
key: redis-conn-str
7 changes: 7 additions & 0 deletions Phase-08/redis-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-configs
namespace: traceroute
data:
save-interval: "60"
11 changes: 11 additions & 0 deletions Phase-08/redis-pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc
namespace: traceroute
spec:
resources:
requests:
storage: 100Mi
accessModes:
- ReadWriteOnce
8 changes: 8 additions & 0 deletions Phase-08/redis-secret.yaml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: redis-secrets
namespace: traceroute
type: Opaque
data:
redis-password: TXlTZWNyZXRQYXNzd29yZA==
11 changes: 11 additions & 0 deletions Phase-08/redis-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: traceroute
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
70 changes: 70 additions & 0 deletions Phase-08/redis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: traceroute
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
volumes:
- name: redis-data
persistentVolumeClaim:
claimName: redis-pvc

containers:
- name: redis
image: redis:alpine

resources:
limits:
memory: "128Mi"
cpu: "256m"

ports:
- containerPort: 6379

volumeMounts:
- mountPath: "/data"
name: redis-data

env:
- name: SAVE_INTERVAL
valueFrom:
configMapKeyRef:
name: redis-configs
key: save-interval

- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: redis-secrets
key: redis-password

command:
- "redis-server"

args:
- "--requirepass"
- "$(REDIS_PASSWORD)"
- "--save"
- "$(SAVE_INTERVAL)"
- "1"
- "--dir"
- "/data"
- "--appendonly"
- "yes"
- "--loglevel"
- "notice"

livenessProbe:
exec:
command:
- redis-cli
- ping
8 changes: 8 additions & 0 deletions Phase-08/repo-secret.yaml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: repo-secret
namespace: traceroute
data:
.dockerconfigjson: "" # Set your ghcr.io credentials here
type: kubernetes.io/dockerconfigjson