feat: added new service: gitea
parent
c0c410e914
commit
6aa4782d34
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
hetzner_server_type: cx21
|
||||||
|
hetzner_server_labels: "stage={{ stage }} service=gitea"
|
||||||
|
|
||||||
|
gitea_id: "{{ inventory_hostname }}-gitea"
|
||||||
|
gitea_postgres_id: "{{ inventory_hostname }}-postgres-gitea"
|
||||||
|
|
||||||
|
gitea_base_url: "{{ gitea_id }}.{{ domain }}"
|
||||||
|
|
||||||
|
# unique id for a service, will be used for service access management as well (e.g. keycloak realm)
|
||||||
|
gitea_client_id: "{{ cluster_name }}"
|
||||||
|
gitea_client_secret: "{{ cluster_name }}"
|
||||||
|
|
||||||
|
gitea_client_admin_username: "gitea-admin"
|
||||||
|
gitea_client_admin_password: "gitea-admin"
|
||||||
|
gitea_realm_admin_username: "gitea-realm-admin"
|
||||||
|
gitea_realm_admin_password: "gitea-realm-admin"
|
||||||
|
|
||||||
|
gitea_postgres_host: "{{ shared_service_postgres_01_hostname }}"
|
||||||
|
gitea_postgres_database: "{{ stage }}_gitea"
|
||||||
|
gitea_postgres_username: "{{ gitea_postgres_database }}"
|
||||||
|
gitea_postgres_password: "gitea-postgres-admin"
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
### tags:
|
||||||
|
### - remove-data
|
||||||
|
|
||||||
|
- name: "Setup postgres for {{ inventory_hostname }}"
|
||||||
|
include_role:
|
||||||
|
name: postgres
|
||||||
|
tasks_from: _postgres-acls
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
gitea_client_admin_username: "gitea-admin"
|
||||||
|
gitea_client_admin_password: "gitea-admin"
|
||||||
|
|
||||||
|
gitea_realm_admin_username: "gitea-realm-admin"
|
||||||
|
gitea_realm_admin_password: "gitea-realm-admin"
|
||||||
|
|
||||||
|
current_realm_clients: [
|
||||||
|
{
|
||||||
|
name: '{{ gitea_client_id }}',
|
||||||
|
clientId: "{{ gitea_client_id }}",
|
||||||
|
admin_url: '',
|
||||||
|
root_url: '',
|
||||||
|
redirect_uris: '
|
||||||
|
[
|
||||||
|
"{{ http_s }}://{{ gitea_base_url }}/*",
|
||||||
|
]',
|
||||||
|
secret: '{{ gitea_client_secret }}',
|
||||||
|
web_origins: '
|
||||||
|
[
|
||||||
|
"{{ http_s }}://{{ gitea_base_url }}",
|
||||||
|
]',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
current_realm_users: [
|
||||||
|
{
|
||||||
|
"username": "{{ gitea_client_admin_username }}",
|
||||||
|
"password": "{{ gitea_client_admin_password }}",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
current_realm_admin_users: [
|
||||||
|
{
|
||||||
|
"username": "{{ gitea_realm_admin_username }}",
|
||||||
|
"password": "{{ gitea_realm_admin_password }}",
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
### tags:
|
||||||
|
|
||||||
|
- name: "Setup realm for {{ inventory_hostname }}"
|
||||||
|
include_role:
|
||||||
|
name: keycloak
|
||||||
|
tasks_from: _authenticate
|
||||||
|
|
||||||
|
- name: "Setup realm for {{ inventory_hostname }}"
|
||||||
|
include_role:
|
||||||
|
name: keycloak
|
||||||
|
tasks_from: _configure_realm
|
||||||
|
|
||||||
|
- name: "Create realm users"
|
||||||
|
include_role:
|
||||||
|
name: keycloak
|
||||||
|
tasks_from: _create_realm_users
|
||||||
|
|
||||||
|
- name: "Create realm admin"
|
||||||
|
include_role:
|
||||||
|
name: keycloak
|
||||||
|
tasks_from: _create_realm_admin
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
gitea_image_name: "gitea/gitea"
|
||||||
|
gitea_image_version: "1.15"
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
### tags:
|
||||||
|
|
||||||
|
- name: "Setup DNS configuration for <{{ gitea_id }}> to <{{ stage_server_ip }}>"
|
||||||
|
include_role:
|
||||||
|
name: _digitalocean
|
||||||
|
tasks_from: domain
|
||||||
|
vars:
|
||||||
|
record_data: "{{ stage_server_ip }}"
|
||||||
|
record_name: "{{ gitea_id }}"
|
||||||
|
|
||||||
|
- name: "Check if {{ gitea_id }}/docker-compose.yml exists"
|
||||||
|
stat:
|
||||||
|
path: '{{ service_base_path }}/{{ gitea_id }}/docker-compose.yml'
|
||||||
|
register: check_docker_compose_file
|
||||||
|
tags:
|
||||||
|
- update_deployment
|
||||||
|
|
||||||
|
- name: "Stop {{ gitea_id }}"
|
||||||
|
shell: docker-compose down
|
||||||
|
args:
|
||||||
|
chdir: '{{ service_base_path }}/{{ gitea_id }}'
|
||||||
|
when: check_docker_compose_file.stat.exists
|
||||||
|
ignore_errors: yes
|
||||||
|
tags:
|
||||||
|
- update_deployment
|
||||||
|
|
||||||
|
- name: "Deploy docker templates for {{ gitea_id }}"
|
||||||
|
include_role:
|
||||||
|
name: _deploy
|
||||||
|
tasks_from: templates
|
||||||
|
vars:
|
||||||
|
current_config: "_docker"
|
||||||
|
current_base_path: "{{ service_base_path }}"
|
||||||
|
current_destination: "{{ gitea_id }}"
|
||||||
|
current_owner: "{{ docker_owner }}"
|
||||||
|
current_group: "{{ docker_group }}"
|
||||||
|
current_docker: "{{ gitea_docker }}"
|
||||||
|
|
||||||
|
- name: "Deploy service templates for {{ gitea_id }}"
|
||||||
|
include_role:
|
||||||
|
name: _deploy
|
||||||
|
tasks_from: templates
|
||||||
|
vars:
|
||||||
|
current_config: "gitea"
|
||||||
|
current_base_path: "{{ service_base_path }}"
|
||||||
|
current_destination: "{{ gitea_id }}"
|
||||||
|
current_owner: "{{ docker_owner }}"
|
||||||
|
current_group: "{{ docker_group }}"
|
||||||
|
|
||||||
|
- name: "Update {{ gitea_id }}"
|
||||||
|
shell: docker-compose pull
|
||||||
|
args:
|
||||||
|
chdir: '{{ service_base_path }}/{{ gitea_id }}'
|
||||||
|
tags:
|
||||||
|
- update_deployment
|
||||||
|
|
||||||
|
- name: "Start {{ gitea_id }}"
|
||||||
|
shell: docker-compose up -d
|
||||||
|
args:
|
||||||
|
chdir: '{{ service_base_path }}/{{ gitea_id }}'
|
||||||
|
tags:
|
||||||
|
- update_deployment
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
gitea_labels: [
|
||||||
|
'"traefik.enable=true"',
|
||||||
|
'"traefik.http.routers.{{ gitea_id }}.service={{ gitea_id }}"',
|
||||||
|
'"traefik.http.routers.{{ gitea_id }}.rule=Host(`{{ gitea_base_url }}`)"',
|
||||||
|
'"traefik.http.routers.{{ gitea_id }}.entrypoints=websecure"',
|
||||||
|
'"traefik.http.routers.{{ gitea_id }}.tls=true"',
|
||||||
|
'"traefik.http.routers.{{ gitea_id }}.tls.certresolver=letsencrypt"',
|
||||||
|
'"traefik.http.services.{{ gitea_id }}.loadbalancer.server.port={{ service_port }}"',
|
||||||
|
]
|
||||||
|
|
||||||
|
gitea_environment: [
|
||||||
|
"USER: \"git\"",
|
||||||
|
"USER_UID: \"1000\"",
|
||||||
|
"USER_GID: \"1000\"",
|
||||||
|
"GITEA__database__DB_TYPE: \"postgres\"",
|
||||||
|
"GITEA__database__HOST: \"{{ gitea_postgres_host }}\"",
|
||||||
|
"GITEA__database__NAME: \"{{ gitea_postgres_database }}\"",
|
||||||
|
"GITEA__database__USER: \"{{ gitea_postgres_username }}\"",
|
||||||
|
"GITEA__database__PASSWD: \"{{ gitea_postgres_password }}\"",
|
||||||
|
]
|
||||||
|
|
||||||
|
gitea_docker: {
|
||||||
|
networks: [
|
||||||
|
{
|
||||||
|
name: back-tier,
|
||||||
|
external: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: front-tier,
|
||||||
|
external: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
volumes: [
|
||||||
|
{
|
||||||
|
name: "{{ gitea_id }}-data"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
services: [
|
||||||
|
{
|
||||||
|
name: "{{ gitea_id }}",
|
||||||
|
image_name: "{{ gitea_image_name }}",
|
||||||
|
image_version: "{{ gitea_image_version }}",
|
||||||
|
labels: "{{ gitea_labels + ( gitea_labels_additional | default([])) }}",
|
||||||
|
restart: "{{ gitea_service_restart | default('always') }}",
|
||||||
|
environment: "{{ gitea_environment + ( gitea_environment_additional | default([])) }}",
|
||||||
|
volumes: [
|
||||||
|
'"{{ gitea_id }}-data:/data"',
|
||||||
|
'"/etc/timezone:/etc/timezone:ro"',
|
||||||
|
'"/etc/localtime:/etc/localtime:ro"',
|
||||||
|
],
|
||||||
|
networks: [
|
||||||
|
'"back-tier"',
|
||||||
|
'"front-tier"',
|
||||||
|
],
|
||||||
|
ports: [
|
||||||
|
{
|
||||||
|
"external": "3000",
|
||||||
|
"internal": "3000",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"external": "2222",
|
||||||
|
"internal": "22",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
extra_hosts: "{{ gitea_extra_hosts | default([]) }}",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue