Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
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
b87ec90
Feature/invite surf autorisaties (#615)
oharsta Feb 24, 2026
3afa0ff
Added CRM endpoint to Swagger (#617)
oharsta Feb 26, 2026
5f56b52
Added feature toggle for feedback widget (#611)
oharsta Feb 26, 2026
cc790a9
Feature/ignore translation error (#612)
oharsta Feb 26, 2026
ae58b7a
Feature/invite crm (#619)
oharsta Feb 26, 2026
ebef2bb
Allow scim_user_identifier to be changes (#620)
phavekes Feb 27, 2026
299eb1f
set default weight for lb backends to 50 (to match lbcheck/blauw) (#540)
baszoetekouw Feb 27, 2026
620737c
Increase PDP heap size to 2GB (#585)
baszoetekouw Feb 27, 2026
1cf48fe
Fix/minio own volume (#599)
crosmuller Feb 27, 2026
601104a
Upgrade to manage 9.6 (#589)
baszoetekouw Feb 27, 2026
f54a982
EB: make wayf.remember_choice configurabel (#591)
baszoetekouw Feb 27, 2026
c389bf6
Max query param size to prevent unexpected run time errors
oharsta Feb 27, 2026
a90053f
Merge pull request #621 from OpenConext/feature/max-query-params
baszoetekouw Feb 27, 2026
cc98ad6
Hide the organisation tab in Manage (#623)
oharsta Mar 2, 2026
dab181b
oidcng log level is set in logback.xml, remove from application.yml (…
phavekes Mar 5, 2026
5611a79
Update env.j2 for SP dashboard release 579.2 (#618)
Tyskai Mar 5, 2026
4adad6c
Expose swagger endpoints for CRM (#626)
oharsta Mar 5, 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
2 changes: 1 addition & 1 deletion .github/workflows/molecule-loadbalancer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: Set up Python 3.8
uses: actions/setup-python@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/molecule-mongo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Set up Python 3.8
uses: actions/setup-python@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/syntax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: Set up Python 3.8
uses: actions/setup-python@v6
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
171 changes: 0 additions & 171 deletions deploy_containers_playbook.yml

This file was deleted.

16 changes: 0 additions & 16 deletions deploy_docker_playbook.yml

This file was deleted.

28 changes: 0 additions & 28 deletions deploy_loadbalancers_playbook.yml

This file was deleted.

1 change: 0 additions & 1 deletion deploy_mariadb_playbook.yml

This file was deleted.

Loading
Loading