Compare commits

...

5 commits

Author SHA1 Message Date
IcyAltair
d4c622295c fixed build docker image bug
Some checks are pending
CI/CD job / Push Docker image to Docker Hub (push) Waiting to run
CI/CD job / Pull image to cluster (push) Blocked by required conditions
2025-12-05 23:26:12 +03:00
IcyAltair
2b6ad07c36 added simple readme
Some checks failed
CI/CD job / Push Docker image to Docker Hub (push) Has been cancelled
CI/CD job / Pull image to cluster (push) Has been cancelled
2025-10-31 12:31:00 +03:00
IcyAltair
270c32ba9d fixed Dockerfile x2
Some checks are pending
CI/CD job / Push Docker image to Docker Hub (push) Waiting to run
CI/CD job / Pull image to cluster (push) Blocked by required conditions
2025-10-31 10:20:40 +03:00
IcyAltair
d5446ba359 fixed Dockerfile
Some checks failed
CI/CD job / Push Docker image to Docker Hub (push) Has been cancelled
CI/CD job / Pull image to cluster (push) Has been cancelled
2025-10-28 21:10:06 +03:00
IcyAltair
27680d9145 deleted legacy configs
Some checks are pending
CI/CD job / Push Docker image to Docker Hub (push) Waiting to run
CI/CD job / Pull image to cluster (push) Blocked by required conditions
2025-10-28 20:44:15 +03:00
21 changed files with 34 additions and 316 deletions

View file

@ -1,9 +0,0 @@
Перед запуском убедитесь, что вы задали токены SWARM_TOKEN_MANAGER и SWARM_TOKEN_WORKER в вашем окружении:
```sh
export SWARM_TOKEN_MANAGER=your-manager-token-here
export SWARM_TOKEN_WORKER=your-worker-token-here
```
Запустите плейбук командой:
```sh
ansible-playbook -i inventory.yml site.yml
```

View file

@ -1,4 +0,0 @@
docker_version: '20.10'
swarm_token_manager: "{{ lookup('env', 'SWARM_TOKEN_MANAGER') }}"
swarm_token_worker: "{{ lookup('env', 'SWARM_TOKEN_WORKER') }}"
manager_ip: '{{ hostvars["manager1"]["ansible_host"] }}'

View file

@ -1,11 +0,0 @@
all:
hosts:
manager1:
ansible_host: x.x.x.x
worker1:
ansible_host: y.y.y.y
worker2:
ansible_host: z.z.z.z
vars:
ansible_user: root
ansible_become: true

View file

@ -1,17 +0,0 @@
---
- name: Update apt cache
become: yes
apt:
update_cache: yes
- name: Install necessary packages for Docker installation
become: yes
apt:
name: "{{ item }}"
state: present
loop:
- apt-transport-https
- ca-certificates
- curl
- gnupg-agent
- software-properties-common

View file

@ -1,25 +0,0 @@
---
- name: Add Docker official repository key
become: yes
apt_key:
url: https://download.docker.com/linux/debian/gpg
state: present
- name: Add Docker stable repository
become: yes
apt_repository:
repo: deb [arch=amd64] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable
state: present
- name: Install Docker CE
become: yes
apt:
name: "docker-ce={{ docker_version }}*"
state: latest
- name: Start and enable Docker service
become: yes
systemd:
name: docker
enabled: yes
state: started

View file

@ -1,24 +0,0 @@
---
- block:
- name: Initialize the Docker Swarm on Manager node
become: yes
command: >
docker swarm init
--advertise-addr {{ manager_ip }}
register: result
when: inventory_hostname == 'manager1'
- set_fact:
join_command: "{{ result.stdout_lines[-1].split(':')[1].strip() }}"
when: inventory_hostname == 'manager1' and result is success
- debug:
msg: "Swarm initialized successfully with token: {{ join_command }}"
when: inventory_hostname == 'manager1' and result is success
- block:
- name: Join Worker nodes to Swarm cluster
become: yes
shell: |
echo "{{ join_command }}" | docker swarm join --token {{ swarm_token_worker }} {{ manager_ip }}:2377
when: inventory_hostname != 'manager1'

View file

@ -1,13 +0,0 @@
---
- name: Setup Docker Swarm Cluster
hosts: all
gather_facts: true
become: true
pre_tasks:
- include_role:
name: common
roles:
- role: docker
- role: swarm

View file

@ -1,7 +0,0 @@
kube_version: v1.25.3
docker_version: 20.10.21
etcd_version: 3.5.6
cni_plugin_version: v3.24.0
helm_version: v3.11.3
pod_network_cidr: 192.168.0.0/16
service_cluster_ip_range: 10.96.0.0/12

View file

@ -1,12 +0,0 @@
all:
children:
masters:
hosts:
master1:
ansible_host: x.x.x.x
workers:
hosts:
worker1:
ansible_host: a.a.a.a
worker2:
ansible_host: b.b.b.b

View file

@ -1,6 +0,0 @@
---
- name: Deploy Kafka & Zookeeper clusters
hosts: all
become: true
roles:
- kafka

View file

@ -1,6 +0,0 @@
---
- name: Install Kubernetes components
hosts: all
become: true
roles:
- k8s

View file

@ -1,6 +0,0 @@
---
- name: Prepare servers for Kubernetes
hosts: all
become: true
roles:
- prepare

View file

@ -1,8 +0,0 @@
---
- name: Download Calico manifest
get_url:
url: "https://docs.projectcalico.org/manifests/calico.yaml"
dest: /tmp/calico.yaml
- name: Apply Calico configuration
command: kubectl apply -f /tmp/calico.yaml

View file

@ -1,52 +0,0 @@
---
- name: Install Docker
package:
name: docker.io
version: "{{ docker_version }}"
state: present
- name: Install Kubelet/Kubectl/Kubeadm
package:
name: ["kubelet","kubectl","kubeadm"]
version: "{{ kube_version }}-00"
state: present
- name: Pull images for Kubernetes
command: kubeadm config images pull --kubernetes-version "{{ kube_version }}"
- name: Initiate Kubernetes cluster on Master node
command: >-
kubeadm init
--apiserver-advertise-address={{ ansible_default_ipv4.address }}
--pod-network-cidr={{ pod_network_cidr }}
--ignore-preflight-errors=Swap
register: output
changed_when: "'Kubeadm completed the bootstrap of control plane node' in output.stdout"
run_once: true
delegate_to: master1
- name: Copy admin credentials from master
fetch:
src: "/etc/kubernetes/admin.conf"
dest: "./admin.conf"
flat: yes
run_once: true
delegate_to: master1
- name: Create .kube directory if not exists
file:
path: ~/.kube
state: directory
mode: '0755'
- name: Copy kubeconfig to local machine
copy:
src: ./admin.conf
dest: ~/.kube/config
owner: "{{ ansible_user_id }}"
group: "{{ ansible_user_gid }}"
mode: '0644'
- name: Deploy Calico network plugin
import_role:
name: calico

View file

@ -1,14 +0,0 @@
---
- name: Render Kafka deployment YAML files
template:
src: "{{ item }}.j2"
dest: "/tmp/{{ item }}.yaml"
loop:
- kafka
- zookeeper
- name: Deploy Kafka using Kubernetes resources
command: kubectl apply -f /tmp/{{ item }}.yaml
loop:
- kafka
- zookeeper

View file

@ -1,35 +0,0 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kafka
spec:
replicas: 2
selector:
matchLabels:
app: kafka
template:
metadata:
labels:
app: kafka
spec:
containers:
- name: kafka
image: kafka:latest
env:
- name: KAFKA_ZOOKEEPER_CONNECT
value: zookeeper-headless:2181
ports:
- containerPort: 9092
---
apiVersion: v1
kind: Service
metadata:
name: kafka-service
spec:
type: NodePort
selector:
app: kafka
ports:
- protocol: TCP
port: 9092
targetPort: 9092

View file

@ -1,31 +0,0 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zookeeper
spec:
replicas: 2
selector:
matchLabels:
app: zookeeper
template:
metadata:
labels:
app: zookeeper
spec:
containers:
- name: zookeeper
image: zoo:latest
ports:
- containerPort: 2181
---
apiVersion: v1
kind: Service
metadata:
name: zookeeper-headless
spec:
clusterIP: None
selector:
app: zookeeper
ports:
- port: 2181
targetPort: 2181

View file

@ -1,34 +0,0 @@
---
- name: Ensure OS packages are up-to-date
apt:
upgrade: dist
update_cache: yes
- name: Disable swap
sysctl:
name: vm.swappiness
value: 0
state: present
reload: yes
- name: Enable kernel modules required by Kubernetes
modprobe:
name: "{{ item }}"
state: present
loop:
- overlay
- br_netfilter
- name: Load iptables rules permanently
lineinfile:
path: /etc/modules-load.d/kubernetes.conf
create: yes
regexp: '^{{ item }}$'
line: '{{ item }}'
loop:
- overlay
- br_netfilter
- name: Set SELinux in permissive mode
selinux:
state: permissive

View file

@ -1,8 +1,30 @@
FROM python:3.12-slim-bookworm:latest
FROM python:3.12-slim
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
build-essential \
cmake \
pkg-config \
git \
libsm6 \
libxext6 \
ffmpeg \
ibgtk2.0-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev
COPY ./docker_requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
COPY . /app
WORKDIR /app
ENTRYPOINT ["python"]
CMD ["src/app.py"]
# ENTRYPOINT ["sh", "src/entrypoint.sh"] # WSGI - gunicorn prod run

10
master-node/README.md Normal file
View file

@ -0,0 +1,10 @@
Build master-node image (on Windows)
```shell
docker buildx build -t master-node .
```
Run master-node
```shell
docker run -p 5010:5010 master-node
```

View file

@ -5,11 +5,11 @@ requests-oauthlib == 1.3.0
Flask == 3.0.2
Flask-HTTPAuth == 4.8.0
Flask-APScheduler == 1.13.1
numpy == 1.26.2
pandas == 1.4.2
Werkzeug == 3.0.1
paramiko == 3.4.0
tabulate == 0.9.0
psycopg2-binary == 2.9.9
pydantic==2.6.3
PyYAML == 6.0
websockets==12.0