Skip to content

Commit

Permalink
[EDP-DDM-0000] Codebase GitHub migration
Browse files Browse the repository at this point in the history
  • Loading branch information
jenkins committed Sep 15, 2023
0 parents commit 8433bf7
Show file tree
Hide file tree
Showing 6,523 changed files with 367,225 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
13 changes: 13 additions & 0 deletions .git-credentials.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# For generating Antora site from remote repositories, you need to initialize local Git 'credentials helper' file
# either using provided support utilities or creating '~/.git-credentials' directly.

# 1. Populating local store with remote repository credentials:
# git config --global credential.helper store && echo -n 'Repository URL: ' && read REPLY && git ls-remote -h $REPLY > /dev/null

# 2. Creating '~/.git-credentials' file and listing remote repositories used for building Antora site (inspect 'site.yml' playbook for latest version)
# Replace <user_name> and <http_password> with your values (use full email as user name and generate HTTP password in gerrit and use it as a token if needed)
# In case of usage of HTTP password double-check that it doesn't contain special characters like '/' which might break parsing of the URL
# Also in some cases you might need to replace '@' character with '%40' inside your username to avoid having two '@' characters in URL

# '.git-credentials' content example: (You can use it as a template by removing '.local' suffix)
https://<user_name>:<http_password>@gerrit-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com
27 changes: 27 additions & 0 deletions .github/workflows/antora-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Publish to GitHub Pages
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install Antora and the Antora Lunr Extension
run: npm i antora @antora/lunr-extension
- name: Install Kroks
run: npm i asciidoctor-kroki
- name: Generate Site EN
run: npx antora site-en-github.yaml
- name: Generate Site UA
run: npx antora site-ua-github.yaml
- name: Publish to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: github-pages
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
*.iml
build/
.DS_Store
node_modules/
.idea/
.git-credentials.local
site-local.yml
package-lock.json
/out/
/output/
.vscode/
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM nexus-docker-registry.apps.cicd2.mdtu-ddm.projects.epam.com/node:16 AS builder
USER root
WORKDIR /antora
RUN chown -R node:node /antora
ARG GIT_USERNAME
ARG GIT_TOKEN
ENV GIT_CREDENTIALS=https://$GIT_USERNAME:$GIT_TOKEN@gerrit-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com
RUN git clone https://$GIT_USERNAME:$GIT_TOKEN@gerrit-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/mdtu-ddm/general/ddm-architecture
WORKDIR /antora/ddm-architecture
RUN chown -R node:node /antora/ddm-architecture
USER node
RUN npm install

FROM nexus-docker-registry.apps.cicd2.mdtu-ddm.projects.epam.com/nginx:1.23.3 as runner
COPY --from=builder /antora/ddm-architecture/antora.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /antora/ddm-architecture/output /usr/share/nginx/html
105 changes: 105 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
## Архітектурна документація

### Інструменти для розробки технічної документації проекту

- [AsciiDoc](https://asciidoc.org/) - мова розмітки з підтримкою структурних та семантичних елементів, яка використовується для формування текстових документів
- [Antora](https://antora.org/) - інструмент структурування текстових AsciiDoc документів за розділами та формування єдиного статичного HTML сайту з технічною документацією на базі _.yml_ плейбука конфігурації

### Інструменти візуалізації технічних аспектів рішення та діаграм
- [PlantUml](https://plantuml.com/) - інструмент з відкритим кодом, який дозволяє описувати UML діаграми, візуалізовувати JSON та YAML у текстовому вигляді за допомогою власного доменного синтаксису
- [Draw.IO](https://draw.io/) - он-лайн інструмент створення діаграм різних типів з можливостями збереження у SVG форматі с підтримкою подальшого редагування

### Шаблон типової документації
- [Шаблон опису типового бекенд-сервісу](https://gitbud.epam.com/mdtu-ddm/general/doc-template)

### Приклади створення PlantUML діаграм
* [Діаграма взаємодії компонентів платформи](/modules/ROOT/partials/infrastructure/ddm-control-plane-components.puml)
* [Діаграма послідовностей по розробці централізованих компонентів платформи та пакету для інсталяції](/modules/ROOT/partials/infrastructure/gitops-main-flow.puml)
* [Діаграма послідовностей встановлення платформи](/modules/ROOT/partials/infrastructure/ddm-platform-install.puml)
* [Діаграма послідовностей створення реэстру за допомогою Control Plane](/modules/ROOT/partials/infrastructure/ddm-registry-creation-details.puml)

### Офіційна документація інструментів
- [Документація AsciiDoc](https://docs.asciidoctor.org/asciidoc/latest/)
- [Гайд техрайтера AsciiDoc](https://asciidoctor.org/docs/asciidoc-writers-guide/)
- [Документація Antora](https://docs.antora.org/antora/2.0/)

### Автоматизований процес формування та публікації сайту документації
- [Генерація нової версії сайту технічної документації](https://jenkins-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/view/Documentation/job/ddm-architecture/job/MASTER-Build-ddm-architecture/)
- [Публікація нової версії сайту технічної документації](https://jenkins-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/view/Documentation/job/documentation-cd-pipeline/job/dev/)
- [Остання версія технічної документації](https://ddm-architecture-mdtu-ddm-edp-cicd-documentation-dev.apps.cicd2.mdtu-ddm.projects.epam.com/mdtuddm/dev/bpms/task-distribution.html)

### Локальне оточення для розробки технічної документації

Для ведення розробки документації, необхідно встановити:
- [IntelliJ IDEA / JetBrains WebStorm](https://www.jetbrains.com/) - інтегроване середовище розробки
- [AsciiDoc JetBrains плагін](https://plugins.jetbrains.com/plugin/7391-asciidoc) - підтримка синтаксису AsciiDoc та попереднього перегляду в IntelliJ IDEA та WebStorm
- [PlantUML Integration IntelliJ IDEA плагін](https://plugins.jetbrains.com/plugin/7017-plantuml-integration) - плагін для розробки діаграм у текстовому вигляді з використанням PlantUML синтаксису та їх попереднього перегляду
- [Antora](https://docs.antora.org/antora/2.3/install/install-antora/) - генератор статичних HTML сайтів шляхом структурування та трансформації AsciiDoc документів
- (опційно) [Asciidoctor.js Live Preview](https://chrome.google.com/webstore/detail/asciidoctorjs-live-previe/iaalpfgpbocpdfblpnhhgllgbdbchmia) - розширення до браузеру Сhrome для перегляду AsciiDoc документів (файли з розширенням _.adoc_)

### Встановлення Antora

Для встановлення Antora та необхідних розширень виконайте у терміналі ([інструкція інсталяції](https://docs.antora.org/antora/2.3/install/install-antora/)):
```bash
npm i -g @antora/cli @antora/site-generator-default asciidoctor-plantuml
```

Перевірте коректність встановлення:
```bash
antora -v
```

Для надання Antora можливості отримувати доступ до Git репозиторіїв ([інструкція аутентифікації для приватних репозиторіїв](https://docs.antora.org/antora/2.3/playbook/private-repository-auth/)):
```bash
git config --global credential.helper store && \
echo -n 'Repository URL: ' && read REPLY && \
git ls-remote -h $REPLY > /dev/null
```

Альтернативним шляхом може бути створення файлу сховища токенів доступу Git _$HOME/.git-credentials_ на базі файлу шаблону _.git-credentials.local_ шляхом копіювання та видалення суфіксу _.local_. Наступним кроком має бути генерація HTTP-пароля у Gerrit та додавання
адреси репозиторію до файлу:
```bash
https://<user_name>:<http_password>@gerrit-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com
```

Альтернативою може бути додавання переліку необхідних репозиторіїв у вигляді:
```bash
https://<user_name>:<http_password>@gerrit-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/<repository_path>
```

### Генерація технічної документації

> **WARNING**: Локально антора може сберегти кеш. Для запобігання помилок рекомендується запускати усі команди з атрибутом --fetch (eg: ```antora site.yml --fetch```)
Генерація статичного HTML сайту документації з використанням останних версій розділів з відповідних репозиторіїв:
```bash
antora site.yml
```

Генерація статичного HTML сайту документації з використанням локальних копій розділів документації (необхідно створити з файлу _site-template.yml_ файл _site-local.yml_ та відкорегувати шляхи до локальних директорій. _site-local.yml_ знаходиться у _.gitignore_):
```bash
antora site-local.yml
```

В обох випадках, сайт технічної документації буде згенеровано у директорію, налаштовану у _.yml_ плейбуці:
```bash
outpout:
dir: ./build/site
```

### Перегляд технічної документації

Для перегляду згенерованої документації на локальному оточенні можно використовувати:
- Браузер, встановлений за замовчуванням, шляхом відкриття файлу _./build/site/index.html_ в IntelliJ IDEA (_File > Open In > Browser > Default_)
- Вбудовані можливості перегляду IntelliJ IDEA (_File > Open In > Browser > Built-in Preview_)

### Налаштування швидкого запуску процесу генерації документації в IntelliJ IDEA

Для автоматизації кроку генерації документації, в IntelliJ IDEA можно налаштувати конфігурацію запуску **Shell Script**:
- Викликати з головного меню: _Run > Edit Configurations > Add New Configuration_
- Вибрати тип конфігурації запуску **Shell Script**
- Вказати ім'я **Name: antora-site**
- Вказати тип скприпта **Execute: Shell Script**
- Вказати скрипт **Script text: antora site-local.yml**

Як результат, в IntelliJ IDEA з'явиться додаткова конфігурація запуску для генерації технічної документації через Antora **antora-site**, яку можна використовувати у якості швидкого виклику.
23 changes: 23 additions & 0 deletions antora.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
server {
listen 80;

rewrite ^/$ /ua/platform/1.9.6/ permanent;

location /ua {
error_page 404 /ua/404.html;
root /usr/share/nginx/html;
index index.html index.htm;
}

location /en {
error_page 404 /en/404.html;
root /usr/share/nginx/html;
index index.html index.htm;
}

location / {
error_page 404 /en/404.html;
root /usr/share/nginx/html;
index index.html index.htm;
}
}
3 changes: 3 additions & 0 deletions build.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@Library(['edp-library-stages', 'edp-library-pipelines']) _

Build()
3 changes: 3 additions & 0 deletions code-review.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@Library(['edp-library-stages', 'edp-library-pipelines']) _

CodeReview()
3 changes: 3 additions & 0 deletions create-release.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@Library(['edp-library-stages', 'edp-library-pipelines']) _

CreateRelease()
7 changes: 7 additions & 0 deletions deploy-templates/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
description: Helm chart for JavaScript application/service deploying
name: ddm-architecture
version: 1.0
keywords:
- JavaScript
home: https://www.epam.com
52 changes: 52 additions & 0 deletions deploy-templates/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.name }}
labels:
app: {{ .Values.name }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Values.name }}
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: {{ .Values.name }}
spec:
serviceAccountName: {{ .Values.name }}
containers:
- name: {{ .Values.name }}
image: "{{ .Values.image.name }}:{{ .Values.image.version }}"
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP
livenessProbe:
failureThreshold: 5
initialDelaySeconds: 180
periodSeconds: 20
successThreshold: 1
tcpSocket:
port: 80
timeoutSeconds: 5
readinessProbe:
failureThreshold: 5
initialDelaySeconds: 60
periodSeconds: 20
successThreshold: 1
tcpSocket:
port: 80
timeoutSeconds: 5
resources:
requests:
memory: 500Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
14 changes: 14 additions & 0 deletions deploy-templates/templates/edp-component.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{- if .Values.edpComponent }}
apiVersion: v1.edp.epam.com/v1alpha1
kind: EDPComponent
metadata:
name: {{ .Values.name }}
namespace: control-plane
labels:
app: {{ .Values.name }}
spec:
type: {{ .Values.name }}
url: https://{{ .Values.ingress.site }}-{{ .Values.namespace }}.{{ .Values.dnsWildcard }}
icon: {{ .Values.edpComponent.icon }}
visible: false
{{- end }}
25 changes: 25 additions & 0 deletions deploy-templates/templates/route.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: {{ .Values.name }}
annotations:
description: "Route for {{ .Values.name }} application"
labels:
app: {{ .Values.name }}
spec:
tls:
insecureEdgeTerminationPolicy: Redirect
termination: edge
{{- if .Values.ingress.site }}
host: {{ .Values.ingress.site }}-{{ .Values.namespace }}.{{ .Values.dnsWildcard }}
{{end}}
path: {{ .Values.ingress.path }}
port:
targetPort: 80
to:
kind: Service
name: {{ .Values.name }}
weight: 100
wildcardPolicy: None
status:
ingress: []
15 changes: 15 additions & 0 deletions deploy-templates/templates/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.name }}
labels:
app: {{ .Values.name }}
spec:
ports:
- name: {{ .Values.name }}
port: 80
protocol: TCP
targetPort: 80
selector:
app: {{ .Values.name }}
type: ClusterIP
4 changes: 4 additions & 0 deletions deploy-templates/templates/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.name }}
Loading

0 comments on commit 8433bf7

Please sign in to comment.