Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
574c8ed
Openaccess versie 0.01
Tyskai Jul 11, 2025
c2935ab
Update serverapplication.yml.j2
Tyskai Jul 11, 2025
8195473
Update main.yml
Tyskai Jul 11, 2025
147d13d
Update provision.yml
Tyskai Jul 11, 2025
9efe699
Update deploy_containers_playbook.yml
Tyskai Jul 11, 2025
534c938
Merge branch 'openaccess' of https://github.com/OpenConext/OpenConext…
Tyskai Jul 11, 2025
5d24930
update
Tyskai Jul 11, 2025
7ebc904
Update main.yml
Tyskai Jul 11, 2025
7f61480
Update main.yml
Tyskai Jul 11, 2025
fca96cb
Update main.yml
Tyskai Jul 11, 2025
9966a7d
Update main.yml
Tyskai Jul 11, 2025
531bd24
Added application_name to services
oharsta Jul 18, 2025
e9180be
Changes
Jul 23, 2025
f731c18
Update
Tyskai Jul 23, 2025
2937f65
Update main.yml
Tyskai Jul 23, 2025
ce2c9b9
Update main.yml
Tyskai Jul 23, 2025
1a55a3a
Update main.yml
Tyskai Jul 23, 2025
f36f8d1
Update main.yml
Tyskai Jul 23, 2025
2d0281c
Update main.yml
Tyskai Jul 23, 2025
80a9129
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
2defb91
Update main.yml
Tyskai Jul 23, 2025
d13d8ee
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
abc9eff
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
0cba3f1
Update
Tyskai Jul 23, 2025
e1d0e03
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
a77f24c
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
eb81d68
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
21cb784
Update serverapplication.yml.j2
Tyskai Jul 23, 2025
6ff52e2
Fix rsyslog
crosmuller Jul 25, 2025
e613816
Add application_tags for metaData
oharsta Jul 25, 2025
257e8d4
Update serverapplication.yml.j2
Tyskai Jul 28, 2025
51f6227
Update serverapplication.yml.j2
Tyskai Jul 28, 2025
ebb3f12
Update right openconext access base domain
Tyskai Jul 28, 2025
3fe21de
Update serverapplication.yml.j2
Tyskai Jul 28, 2025
e1d78b4
Update serverapplication.yml.j2
Tyskai Jul 28, 2025
50564d1
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
aea636d
Update oidc playground in serverapplication yml
Tyskai Jul 29, 2025
ac5cab6
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
b6446ca
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
cc00647
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
d1c5f95
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
e9ff799
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
33a2372
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
5b6e6f8
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
40f3b0e
add a bit of structure
Tyskai Jul 29, 2025
23fc129
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
63cb908
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
e6b5379
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
e94ca98
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
1c0e2b7
Merge remote-tracking branch 'origin/main' into openaccess
Jul 29, 2025
9b686db
Update serverapplication.yml.j2
Tyskai Jul 29, 2025
894a17a
Merge pull request #528 from OpenConext/openaccess
oharsta Jul 29, 2025
3a26505
enabled Jira
oharsta Jul 30, 2025
fbee779
Increased Jira timeout
oharsta Jul 31, 2025
0798d0d
Hotfix rsyslog breaks after reboot (#529)
crosmuller Aug 4, 2025
8ae534e
Hotfix/rsyslog_not_working (#530)
crosmuller Aug 6, 2025
c50683a
rename stats_server_version to stats_version for clarity
baszoetekouw Aug 14, 2025
1ef75d1
run stats server as separate user
baszoetekouw Aug 18, 2025
c6ac8b8
comments & quotes
baszoetekouw Aug 18, 2025
298d25d
Removed TODO
oharsta Aug 18, 2025
c80d596
Feature toggle for secret & public RP
oharsta Aug 18, 2025
d3d9382
New internal user for invite prometheus endpoint
oharsta Aug 18, 2025
5d420cd
Allow manifest-src self in csp policy (#533)
phavekes Aug 21, 2025
dbf64eb
Added organization template for Manage
oharsta Aug 22, 2025
1763724
Added organization template for Manage
oharsta Aug 22, 2025
eb25b0d
Bugfix for wrong extension
oharsta Aug 22, 2025
d03a480
Added organization template for Manage
oharsta Aug 22, 2025
9f2a714
Merge pull request #532 from OpenConext/fix/stats-deploy
baszoetekouw Aug 24, 2025
589310e
Add json syslog appender to myconext (#535)
phavekes Aug 25, 2025
4bdd6a5
Part of https://github.com/OpenConext/OpenConext-manage/issues/544
oharsta Aug 27, 2025
4c94b13
Part of https://github.com/OpenConext/OpenConext-manage/issues/544
oharsta Aug 27, 2025
a17cb3f
galera_root_users is obsolete and add some nologs (#537)
crosmuller Aug 28, 2025
13125f7
Part of https://github.com/OpenConext/OpenConext-myconext/issues/985
oharsta Aug 28, 2025
255e10e
MetaDataField for https://github.com/OpenConext/OpenConext-enginebloc…
oharsta Aug 28, 2025
8ec336b
Add json logging to invite (#536)
phavekes Aug 29, 2025
97f19b3
Added serviceProvidersNegated for https://github.com/OpenConext/OpenC…
oharsta Aug 29, 2025
0fdb4e3
Make myconext geoip location configurable (#541)
phavekes Sep 5, 2025
67f02b8
Manage: Fix yaml syntax (#538)
baszoetekouw Sep 5, 2025
32c2d42
Bump actions/checkout from 4 to 5 (#531)
dependabot[bot] Sep 9, 2025
ead9402
Bump actions/setup-python from 5 to 6
dependabot[bot] Sep 9, 2025
ee5a131
Fix filename typo in invite role (#544)
phavekes Sep 9, 2025
969298f
configurable container restart policy (#545)
crosmuller Sep 11, 2025
73e3fa3
https://github.com/OpenConext/OpenConext-manage/issues/552
oharsta Sep 12, 2025
12b83a7
remove minus from group names (#546)
crosmuller Sep 12, 2025
01c732d
Add tiqr trusted_device_enforcement_enabled: false (#508)
pmeulen Sep 15, 2025
a7bdc30
Fix build, disable molecule
phavekes Sep 15, 2025
f0ba65b
Merge pull request #543 from OpenConext/dependabot/github_actions/act…
baszoetekouw Sep 15, 2025
7fc6032
Added eduid.nl/links to supported scopes
oharsta Sep 15, 2025
bfa88fe
Use a single version number for myconext and invite (#549)
phavekes Sep 15, 2025
10b34b4
myconext session lifetime to 11 hours (#550)
phavekes Sep 15, 2025
1de0c31
Removed trailing comma
oharsta Sep 17, 2025
a08ee1b
Revert commit 10b34b4 (#552)
phavekes Sep 23, 2025
c0dd1c5
Part of https://github.com/OpenConext/OpenConext-myconext/issues/996
oharsta Sep 23, 2025
afaaa0a
Fix for access deployment
oharsta Sep 24, 2025
b5126a8
Final application_tag values
oharsta Sep 25, 2025
0d7fc7c
Add gateway fallback gssp configuration
pmeulen Jul 23, 2025
99f7c26
Remove RA specific ra_logout_url
pmeulen Jul 23, 2025
be2c072
Add federation_metadata_cache_location for AzureMFA
pmeulen Jul 25, 2025
1713344
Add configuration for engine_feature_send_user_attributes
pmeulen Jul 29, 2025
015d2ce
Add configuration for engine HTTP client timeout and set default to 1…
pmeulen Jul 29, 2025
0c4a1d4
Add configuration for engine maximum_authentications_per_session and …
pmeulen Jul 29, 2025
1ecb86a
Fix typo in schacHomeOrganization attribute
pmeulen Jul 30, 2025
d9445f3
Fixes https://github.com/OpenConext/OpenConext-Invite/issues/342
oharsta Oct 17, 2025
f31556f
Show migrations
oharsta Oct 23, 2025
522a6d4
Enable detailed health check
oharsta Oct 29, 2025
0bfc886
Add federation metadata cache to azuremfa (#542)
phavekes Oct 30, 2025
ef4ccd6
create an iptables backup file for safety (#559)
crosmuller Nov 6, 2025
23ebc08
Added email.serviceDeskEmail placeholder (#560)
oharsta Nov 12, 2025
2f5e1a1
Fix/just another rsyslogfix (#561)
crosmuller Nov 17, 2025
6560481
fix template (#564)
crosmuller Nov 17, 2025
e2cd7ac
Added activeManage to access props (#562)
oharsta Nov 17, 2025
3f97fd8
Add eduID acr values
phavekes Nov 19, 2025
e2a7300
Move group_var mfa_values_supported from all.yml to template
phavekes Nov 19, 2025
21b647b
make pdp traefik route consistent
baszoetekouw Oct 3, 2025
f3a4df0
Remove pdpgui and rename pdpserver to pdp
baszoetekouw Nov 20, 2025
aed2aac
parameterize cluster user privs (#568)
crosmuller Nov 21, 2025
7a96377
commenting out forwardtosyslog still resulted in enabling on debian (…
crosmuller Nov 24, 2025
b60ee5b
FIx provision to create roles-external/ if it doesn't exist yet
baszoetekouw Nov 25, 2025
7f5815f
Merge pull request #565 from OpenConext/feature/add_eduid_acr_values
baszoetekouw Nov 26, 2025
5de41fe
Merge pull request #569 from OpenConext/release/618
baszoetekouw Nov 26, 2025
edbdfbb
Adjust oidcng logging to docker hostname (#575)
phavekes Nov 27, 2025
a968cb1
#1024 Add mail-institution-batch-size to 500 and set mail-institution…
Liemine Dec 1, 2025
d5ca34b
Feature/open access (#586)
oharsta Dec 5, 2025
e2e122f
Feature/#802 differentiate error mail configurable for prod and non p…
Liemine Dec 5, 2025
1aec9c5
#1054 Institute warning mail send at 5:30 (#587)
Liemine Dec 5, 2025
f93e97c
Fix for filtering issue and wrong imjournal state file location
crosmuller Dec 8, 2025
79b8f0a
Mongo simplify keys and cert distribution and cluster membership (#556)
crosmuller Dec 8, 2025
7f0f4b0
Sync Develop branch (#566)
oharsta Dec 12, 2025
91890b2
change default to irl situation
crosmuller Jan 8, 2026
524cc5b
correctly set springboot port aa (#594)
crosmuller Jan 8, 2026
8289adc
Invite application.yml initialize-schema should be never. Initialisat…
phavekes Jan 8, 2026
e93bad0
Fallback organizationGUID for API users invite (#598)
oharsta Jan 14, 2026
708ad63
Reenable link service (handled by AA)
baszoetekouw Jan 15, 2026
b4728a3
test restart
baszoetekouw Jan 15, 2026
8b9bd58
revert removal of link container
baszoetekouw Jan 15, 2026
5566214
correctly restart link-container
baszoetekouw Jan 16, 2026
e501f07
readonly mounts
baszoetekouw Jan 16, 2026
b7c61e0
Use correct health endpoint
baszoetekouw Jan 16, 2026
0db185f
fix traefik name for aalink
baszoetekouw Jan 16, 2026
7513fed
add shib config
baszoetekouw Jan 16, 2026
e8e51b3
uncouple server and link config files
baszoetekouw Jan 16, 2026
6e35593
ansible-lint
baszoetekouw Jan 15, 2026
50715c3
Use group_var's for myconext email from addresses (#600)
phavekes Jan 19, 2026
fd8f37b
Rename AA version var
baszoetekouw Jan 23, 2026
567c1cc
Merge Develop (#593)
oharsta Jan 26, 2026
546fdd4
Merge pull request #603 from OpenConext/release/625
baszoetekouw Jan 28, 2026
0432334
Fix/rsyslog space issue
crosmuller Jan 28, 2026
cf0d9ec
Make requestmethod for AA/invite explicit to avoid warnings
baszoetekouw Jan 28, 2026
15e4cd8
Merge pull request #604 from OpenConext/release/625
baszoetekouw Jan 28, 2026
c161b9b
Bump actions/checkout from 5 to 6 (#572)
dependabot[bot] Jan 29, 2026
ede0360
Re-Repair myconext emails from group_vars (#605)
phavekes Feb 3, 2026
bb72165
Add check empty logfiles scripts and some cleaning (#606)
crosmuller Feb 4, 2026
2bcd60b
Refactor 2026: surf settings moved to the surf repo, some fixes in pr…
crosmuller Feb 5, 2026
3c0c8c4
fix mail (from eduID) with right variables (#608)
Tyskai Feb 6, 2026
b34879d
typo in provision.yml (#609)
crosmuller Feb 9, 2026
b3fdcb5
Add enviroment to invite config (#613)
phavekes Feb 18, 2026
37c89c8
Fix garb repository version (#610)
crosmuller Feb 20, 2026
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
3 changes: 3 additions & 0 deletions .ansible-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
profile: "production"
offline: false
37 changes: 19 additions & 18 deletions .github/workflows/molecule-loadbalancer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,32 @@

name: loadbalancer
on:
push:
paths:
- 'roles/haproxy/**'
- 'roles/keepalived/**'
- 'roles/bind/**'
- 'molecule/loadbalancer/**'
- 'roles/selfsigned_certs/**'
- '.github/workflows/molecule-loadbalancer.yml'
pull_request:
paths:
- 'roles/haproxy/**'
- 'roles/keepalived/**'
- 'roles/bind/**'
- 'molecule/loadbalancer/**'
- 'roles/selfsigned_certs/**'
- '.github/workflows/molecule-loadbalancer.yml'
workflow_dispatch:
# push:
# paths:
# - 'roles/haproxy/**'
# - 'roles/keepalived/**'
# - 'roles/bind/**'
# - 'molecule/loadbalancer/**'
# - 'roles/selfsigned_certs/**'
# - '.github/workflows/molecule-loadbalancer.yml'
# pull_request:
# paths:
# - 'roles/haproxy/**'
# - 'roles/keepalived/**'
# - 'roles/bind/**'
# - 'molecule/loadbalancer/**'
# - 'roles/selfsigned_certs/**'
# - '.github/workflows/molecule-loadbalancer.yml'

jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Python 3.8
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.8

Expand Down
28 changes: 14 additions & 14 deletions .github/workflows/molecule-mongo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@

name: mongo
on:
push:
paths:
- 'roles/mongo/**'
- 'molecule/mongo/**'
- '.github/workflows/molecule-mongo.yml'
pull_request:
paths:
- 'roles/mongo/**'
- 'molecule/mongo/**'
- '.github/workflows/molecule-mongo.yml'
workflow_dispatch:
# push:
# paths:
# - 'roles/mongo/**'
# - 'molecule/mongo/**'
# - '.github/workflows/molecule-mongo.yml'
# pull_request:
# paths:
# - 'roles/mongo/**'
# - 'molecule/mongo/**'
# - '.github/workflows/molecule-mongo.yml'

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4

- uses: actions/checkout@v6
- name: Set up Python 3.8
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.8

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/syntax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Python 3.8
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.8

Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Changelog

All notable changes to this project will be documented in this file.

### Changed
- All group_var files are moved to the environment example template, more information about where to save group_vars in the [README](https://github.com/OpenConext/OpenConext-deploy/blob/main/README.md)
- separate plays for separate roles in the provision.yml playbook
- seperate groups are defined for separate apps, dividing apps across the container servers should be set in the inventory not in the playbook, this way you can easily change it for different environments. This also makes it impossible to use the wrong tag and deploy something you did not intend to, instead nothing will happen.
- mysql_standalone group replaces storage group

### Removed
- selfsigned_certs role is deprecated and removed from the provision.yml playbook
- environment/playbook inclusion in provision.yml

### Todo
- [ ] Complete environments/template
97 changes: 75 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ Every application has a seperate role to install it. The following roles can be
| stepupra | Stepup ra interface |
| stepupselfservice | Stepup selfservice interface |

All these applications run in Docker. You can use the "docker" role to install docker and Traefik. The result is a Docker application server, with port 443 open. Applications are served by Traefik and recognized on basis of a Host: header. If you run a small installation, you can add a https certificate to Traefik and run a single node application server.
All these applications run in Docker. You can use the "docker" role to install docker and Traefik. The result is a Docker application server, with port 443 open. Applications are served by Traefik and recognized on basis of a Host: header. If you run a small installation, you can add a https certificate to Traefik and run a single node application server.

For a fully functioning environment you also need a MariaDB database server and a Mongo database server.
For a fully functioning environment you also need a MariaDB database server and a Mongo database server.

## Infra roles
This repository is used for deployment of SURFconext, and several roles that the SURFconext teams uses to provision our infrastructure are provided here as well. You can use them for your own infrastructure or use them as inspiration.
This repository is used for deployment of SURFconext, and several roles that the SURFconext teams uses to provision our infrastructure are provided here as well. You can use them for your own infrastructure or use them as inspiration.
| name | remarks |
| --- | --- |
| bind | DNS server for high availability. Very specific for SURFconext |
Expand All @@ -59,40 +59,93 @@ This repository is used for deployment of SURFconext, and several roles that the
| mongo | Install a mongo cluster (has its own README) |
| manage_provision_entities|Provision entities to Manage |

# Environment specific variables
Many variables can be overridden to create a setup suitable for your needs. The environment should be placed in the directory environments_external.
# Setting up your environment
Many variables can be overridden to create a setup suitable for your needs. We will explain the setup here for one environment or for a multi-environment (OTAP for example) setup.

A script is available to provision a new environment. It will create a new environment directory under environments-external/ and it will create all necessary passwords and (self-signed) certificates. Replace <environment> with the name of the target. Replace <domain> with the domain of the target.
The setup descibed below should work, but when using ansible many paths lead to Rome. If you want to know more about variables and where to save them, this can be helpfull: https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

## Inventory
You need an inventory file for your environment or multiple inventory files if you have multiple environments. An example can be found in environments/template

## Playbook
You can use the provision.yml script to deploy all infra and application roles. Every play has a tag so you can deploy your environment one application at a time by using the specific tag. You can also use your own playbooks if you prefer.

## First steps
Clone the repository with git.

```bash
cd yourdir
git clone https://github.com/OpenConext/OpenConext-deploy.git
```
/prep-env <environment> <domain>
```
Then run
```
cp environments-external/<environment>/host_vars/template.yml environments-external/<environment>/host_vars/<target_ip>.yml
```
(where <target_ip> is the ip address or hostname of your target machine, whatever is set in your inventory file)

Change in environments-external/<environment>/inventory:
Change all references from %target_host% to <target_ip>
Create ansible.cfg in your directory and add Openconext-deploy/roles to your roles_path

```bash
[defaults]
diff = true
roles_path = OpenConext-deploy/roles # Add your own roles directory if you want
```
Please note that this has not been tested in quite a while. You will need a lot of manual work to get this environment working

## One environment
Copy the inventory, host and group files from environment/template to your directory and adjust them according to your preferences:

```bash
cp -R OpenConext-deploy/environments/template/* .
```

Edit your inventory file
Edit group_var and host_var files if necessary

Create an ansible vault in secrets and name it secrets.yml, an unencrypted example can be found in secrets/secret_example.yml
More information about vaults: https://docs.ansible.com/projects/ansible/latest/vault_guide/index.html
The final setup will look like this:

# Playbooks, tags and the provision wrapper script
- group_vars/all.yml
- group_vars/\<GROUPNAME\>.yml
- secrets/secrets.yml
- host_vars/\<HOSTNAME\>/yml
- inventory
- Openconext-deploy/provision.yml
- Openconext-deploy/roles
- \<YOUROWNOPTIONALPLAYBOOKS\>.yml
- ansible.cfg

Two playbooks exist in this repository: provision.yml and playbook_haproxy.yml. The latter can be used to do red/blue deployments if you also use our haproxy role.
The main playbook is provision.yml. It contains series of plays to install every role on the right node. All roles are tagged, so you can use the [Ansible tag mechanism](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_tags.html) to deploy a specific role.
You can use the provision playbook now:

If you would like to deploy manage to your test environment, you would run:
```bash
ansible-playbook OpenConext-deploy/provision.yml -i inventory -t <TAG> --ask-vault-password
```
ansible-playbook -i environments-external/test/inventory --tags manage -u THE_REMOTE_SSH_USER_WITH_SUDO_PERMISSIONS

## Multi-environment
Copy the inventory and group files from environment/template to your directory and adjust them according to your preferences:

```bash
mkdir <ENVIRONMENT> # test for example
cp -R OpenConext-deploy/environments/template/* <ENVIRONMENT>
# etc...
```
Edit your inventory files
Edit group_var and host_var files if necessary

For each environment create an ansible vault in secrets and name it secrets.yml, an unencrypted example can be found in secrets/secret_example.yml
More information about vaults: https://docs.ansible.com/projects/ansible/latest/vault_guide/index.html

The final setup will look like this:

A wrapper script which enables you to use your own roles can be used as well. That is documented here: https://github.com/OpenConext/OpenConext-deploy/wiki/Add-your-own-roles-and-playbooks
- \<ENVIRONMENT\>/group_vars/all.yml
- \<ENVIRONMENT\>/group_vars/\<GROUPNAME\>.yml
- \<ENVIRONMENT\>/host_vars/\<HOSTNAME\>/yml
- \<ENVIRONMENT\>/inventory
- Openconext-deploy/provision.yml
- Openconext-deploy/roles
- \<YOUROWNOPTIONALPLAYBOOKS\>.yml
- ansible.cfg

You can use the provision playbook now:

```bash
ansible-playbook OpenConext-deploy/provision.yml -i <ENVIRONMENT>/inventory -t <TAG> --ask-vault-password
```

# License

Expand Down
Loading