mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 10:19:09 +00:00 
			
		
		
		
	Introduce filter_plugins/jvm_filters.py with jvm_max_mb/jvm_min_mb. Derive Xmx/Xms from docker mem_limit/mem_reservation using safe rules: Xmx=min(70% limit, limit-1024MB, 12288MB), floored at 1024MB; Xms=min(Xmx/2, reservation, Xmx), floored at 512MB. Parse human-readable sizes (k/m/g/t) with binary units. Wire filters into roles: set JVM_MINIMUM_MEMORY/JVM_MAXIMUM_MEMORY via filters; stop relying on host RAM. Keep env templates simple and stable. Add unit tests under tests/unit/filter_plugins/test_jvm_filters.py covering typical sizes, floors, caps, invalid inputs, and entity-name derivation. Ref: https://chatgpt.com/share/68d3b9f6-8d18-800f-aa8d-8a743ddf164d
		
			
				
	
	
		
			40 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # General
 | |
| application_id:               "web-app-jira"
 | |
| database_type:                "postgres"
 | |
| entity_name:                  "{{ application_id | get_entity_name }}"
 | |
| 
 | |
| # Container
 | |
| container_port:               8080   # Standardport Jira
 | |
| container_hostname:           "{{ domains | get_domain(application_id) }}"
 | |
| 
 | |
| # Jira
 | |
| 
 | |
| ## URLs
 | |
| JIRA_URL:                     "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
 | |
| JIRA_HOSTNAME:                "{{ container_hostname }}"
 | |
| JIRA_STORAGE_PATH:            "/var/atlassian/application-data/jira"
 | |
| 
 | |
| ## OIDC
 | |
| JIRA_OIDC_ENABLED:            "{{ applications | get_app_conf(application_id, 'features.oidc') }}"
 | |
| JIRA_OIDC_LABEL:              "{{ OIDC.BUTTON_TEXT }}"
 | |
| JIRA_OIDC_CLIENT_ID:          "{{ OIDC.CLIENT.ID }}"
 | |
| JIRA_OIDC_CLIENT_SECRET:      "{{ OIDC.CLIENT.SECRET }}"
 | |
| JIRA_OIDC_ISSUER:             "{{ OIDC.CLIENT.ISSUER_URL }}"
 | |
| JIRA_OIDC_AUTH_URL:           "{{ OIDC.CLIENT.AUTHORIZE_URL }}"
 | |
| JIRA_OIDC_TOKEN_URL:          "{{ OIDC.CLIENT.TOKEN_URL }}"
 | |
| JIRA_OIDC_USERINFO_URL:       "{{ OIDC.CLIENT.USER_INFO_URL }}"
 | |
| JIRA_OIDC_LOGOUT_URL:         "{{ OIDC.CLIENT.LOGOUT_URL }}"
 | |
| JIRA_OIDC_JWKS_URL:           "{{ OIDC.CLIENT.CERTS }}"
 | |
| JIRA_OIDC_SCOPES:             "openid,email,profile"
 | |
| JIRA_OIDC_UNIQUE_ATTRIBUTE:   "{{ OIDC.ATTRIBUTES.USERNAME }}"
 | |
| 
 | |
| ## Docker
 | |
| JIRA_VERSION:                 "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.version') }}"
 | |
| JIRA_IMAGE:                   "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.image') }}"
 | |
| JIRA_CONTAINER:               "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~ '.name') }}"
 | |
| JIRA_DATA_VOLUME:             "{{ applications | get_app_conf(application_id, 'docker.volumes.data') }}"
 | |
| JIRA_CUSTOM_IMAGE:            "{{ JIRA_IMAGE }}_custom"
 | |
| 
 | |
| ## Performance (derive from container limits in config/main.yml)
 | |
| JIRA_JVM_MAX:                 "{{ applications | jvm_max_mb(application_id) }}m"
 | |
| JIRA_JVM_MIN:                 "{{ applications | jvm_min_mb(application_id) }}m" |