added conf files for k8s

This commit is contained in:
2025-12-18 15:34:28 +03:00
commit 514b401aae
28 changed files with 1406 additions and 0 deletions

View File

@@ -0,0 +1,191 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster1-init-scripts
namespace: cluster1
data:
db1-init.sql: |
-- from Практика 3/init-scripts/db1-init.sql
-- Инициализация БД 1
-- Создание пользователей
-- Пользователь 1: видит только свою БД (database1)
CREATE USER user1_local WITH PASSWORD 'user1pass';
GRANT CONNECT ON DATABASE database1 TO user1_local;
GRANT USAGE ON SCHEMA public TO user1_local;
GRANT CREATE ON SCHEMA public TO user1_local;
-- Пользователь 1: может видеть БД в соседнем контейнере (database2)
-- Этот пользователь будет создан также в db2, что позволит ему подключаться к обеим БД
CREATE USER user1_cross WITH PASSWORD 'user1pass';
GRANT CONNECT ON DATABASE database1 TO user1_cross;
GRANT USAGE ON SCHEMA public TO user1_cross;
GRANT CREATE ON SCHEMA public TO user1_cross;
-- Создание таблиц
CREATE TABLE IF NOT EXISTS products (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
quantity INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS orders (
id SERIAL PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(50) NOT NULL,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Выдача прав на таблицы для user1_local
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_local;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_local;
-- Выдача прав на таблицы для user1_cross
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_cross;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_cross;
-- Настройка прав по умолчанию для будущих таблиц
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_local;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_cross;
ALTER DEFAULT PRIVИЛЕGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_local;
ALTER DEFAULT PRIVИЛЕGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_cross;
db1-data.sql: |
-- from Практика 3/init-scripts/db1-data.sql
-- Заполнение таблиц случайными данными для БД 1
-- Вставка случайных данных в таблицу products
INSERT INTO products (name, price, quantity) VALUES
('Ноутбук Dell XPS', 89999.99, 15),
('Мышь Logitech MX', 3499.50, 42),
('Клавиатура Mechanical', 5999.00, 28),
('Монитор LG 27"', 24999.99, 12),
('Наушники Sony WH-1000XM4', 19999.00, 35),
('Веб-камера Logitech C920', 4999.00, 18),
('Микрофон Blue Yeti', 8999.99, 8),
('Коврик для мыши', 599.00, 100),
('USB-C кабель', 1299.00, 55),
('Внешний SSD 1TB', 8999.99, 22),
('Планшет Samsung Galaxy', 29999.00, 14),
('Смартфон iPhone 15', 79999.99, 9),
('Умные часы Apple Watch', 24999.00, 20),
('Портативная колонка JBL', 4999.00, 30),
('Беспроводные наушники AirPods', 14999.00, 25);
-- Вставка случайных данных в таблицу orders
INSERT INTO orders (customer_name, total_amount, status) VALUES
('Иван Петров', 125999.99, 'completed'),
('Мария Сидорова', 3499.50, 'pending'),
('Алексей Иванов', 5999.00, 'completed'),
('Елена Козлова', 24999.99, 'processing'),
('Дмитрий Смирнов', 19999.00, 'completed'),
('Ольга Волкова', 4999.00, 'pending'),
('Сергей Лебедев', 8999.99, 'completed'),
('Анна Новикова', 599.00, 'completed'),
('Павел Морозов', 1299.00, 'processing'),
('Татьяна Федорова', 8999.99, 'completed'),
('Николай Соколов', 29999.00, 'pending'),
('Юлия Попова', 79999.99, 'completed'),
('Андрей Васильев', 24999.00, 'processing'),
('Наталья Павлова', 4999.00, 'completed'),
('Владимир Семенов', 14999.00, 'pending'),
('Ирина Григорьева', 89999.99, 'completed'),
('Роман Орлов', 3499.50, 'processing'),
('Екатерина Зайцева', 5999.00, 'completed'),
('Максим Егоров', 24999.99, 'pending'),
('Светлана Михайлова', 19999.00, 'completed');
db2-init.sql: |
-- from Практика 3/init-scripts/db2-init.sql
-- Инициализация БД 2
-- Создание пользователей
-- Пользователь 2: видит только свою БД (database2)
CREATE USER user2_local WITH PASSWORD 'user2pass';
GRANT CONNECT ON DATABASE database2 TO user2_local;
GRANT USAGE ON SCHEMA public TO user2_local;
GRANT CREATE ON SCHEMA public TO user2_local;
-- Пользователь 1: может видеть БД в соседнем контейнере (database1)
-- Этот пользователь создан также в db1, что позволяет ему подключаться к обеим БД
CREATE USER user1_cross WITH PASSWORD 'user1pass';
GRANT CONNECT ON DATABASE database2 TO user1_cross;
GRANT USAGE ON SCHEMA public TO user1_cross;
GRANT CREATE ON SCHEMA public TO user1_cross;
-- Создание таблиц
CREATE TABLE IF NOT EXISTS employees (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
position VARCHAR(100) NOT NULL,
salary DECIMAL(10, 2) NOT NULL,
hire_date DATE NOT NULL,
department VARCHAR(50) NOT NULL
);
CREATE TABLE IF NOT EXISTS departments (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL UNIQUE,
budget DECIMAL(12, 2) NOT NULL,
manager_id INTEGER,
location VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Выдача прав на таблицы для user2_local
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user2_local;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user2_local;
-- Выдача прав на таблицы для user1_cross
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_cross;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_cross;
-- Настройка прав по умолчанию для будущих таблиц
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user2_local;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_cross;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user2_local;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_cross;
db2-data.sql: |
-- from Практика 3/init-scripts/db2-data.sql
-- Заполнение таблиц случайными данными для БД 2
-- Вставка случайных данных в таблицу departments
INSERT INTO departments (name, budget, location) VALUES
('Отдел разработки', 5000000.00, 'Москва, офис 1'),
('Отдел продаж', 3000000.00, 'Санкт-Петербург, офис 2'),
('Отдел маркетинга', 2000000.00, 'Москва, офис 1'),
('Отдел HR', 1500000.00, 'Новосибирск, офис 3'),
('Отдел финансов', 4000000.00, 'Москва, офис 1'),
('Отдел поддержки', 1800000.00, 'Екатеринбург, офис 4'),
('Отдел тестирования', 2500000.00, 'Москва, офис 1'),
('Отдел аналитики', 2200000.00, 'Казань, офис 5');
-- Вставка случайных данных в таблицу employees
INSERT INTO employees (first_name, last_name, position, salary, hire_date, department) VALUES
('Александр', 'Иванов', 'Senior Developer', 150000.00, '2020-03-15', 'Отдел разработки'),
('Елена', 'Петрова', 'Product Manager', 120000.00, '2019-06-20', 'Отдел разработки'),
('Дмитрий', 'Сидоров', 'Sales Manager', 80000.00, '2021-01-10', 'Отдел продаж'),
('Мария', 'Козлова', 'Marketing Specialist', 70000.00, '2021-08-05', 'Отдел маркетинга'),
('Сергей', 'Смирнов', 'HR Manager', 90000.00, '2020-11-12', 'Отдел HR'),
('Ольга', 'Волкова', 'Financial Analyst', 110000.00, '2019-09-18', 'Отдел финансов'),
('Андрей', 'Лебедев', 'Support Engineer', 65000.00, '2022-02-22', 'Отдел поддержки'),
('Татьяна', 'Новикова', 'QA Engineer', 75000.00, '2021-04-30', 'Отдел тестирования'),
('Павел', 'Морозов', 'Data Analyst', 85000.00, '2020-07-14', 'Отдел аналитики'),
('Юлия', 'Федорова', 'Junior Developer', 60000.00, '2022-05-08', 'Отдел разработки'),
('Николай', 'Соколов', 'Senior Sales Manager', 95000.00, '2018-12-03', 'Отдел продаж'),
('Анна', 'Попова', 'Marketing Manager', 100000.00, '2020-10-25', 'Отдел маркетинга'),
('Владимир', 'Васильев', 'Lead Developer', 180000.00, '2017-05-11', 'Отдел разработки'),
('Наталья', 'Павлова', 'Recruiter', 55000.00, '2021-11-19', 'Отдел HR'),
('Роман', 'Семенов', 'CFO', 200000.00, '2016-08-07', 'Отдел финансов'),
('Екатерина', 'Григорьева', 'Senior Support Engineer', 80000.00, '2019-03-28', 'Отдел поддержки'),
('Максим', 'Орлов', 'Test Lead', 130000.00, '2018-09-15', 'Отдел тестирования'),
('Светлана', 'Зайцева', 'Senior Data Analyst', 120000.00, '2019-12-01', 'Отдел аналитики'),
('Игорь', 'Егоров', 'DevOps Engineer', 140000.00, '2020-04-16', 'Отдел разработки'),
('Людмила', 'Михайлова', 'Sales Director', 160000.00, '2017-11-23', 'Отдел продаж');