class soc::vuln_dashboard( String $allowed_origins = $facts['networking']['fqdn'], String $docker_tag = 'latest', String $db_datadir = '/opt/vuln-dashboard/dbdata', String $pocs_storage_dir = '/opt/vuln-dashboard/pocsdata', String $sso_service_name = 'dashboard-dev', String $admin_contact = 'cert@cert.sunet.se', String $docker_image = 'platform.sunet.se/verglasz/vuln-management/dashboard-dev', String $sso_proxy_network= 'sso', ) { $db_name=lookup('vuln-dashboard.dn_name', undef, undef, 'vuln_dashboard') $db_user=lookup('vuln-dashboard.db_user', undef, undef, 'dashboard_app') $db_pass=lookup('vuln-dashboard.db_pass', undef, undef, 'password') $db_port=lookup('vuln-dashbaord.db_port', undef, undef, '5432') $db_host=lookup('vuln-dashboard.db_host', undef, undef, 'postgres') $censys_api_secret=lookup('vuln-dashboard.censys_api_secret', undef, undef, 'null') $censys_api_id=lookup('vuln-dashboard.censys.api_id', undef, undef, 'null') $app_config_file='/opt/vuln-dashboard/app-config.yaml' file { '/opt/vuln-dashboard': ensure => directory, ; $db_datadir: ensure => directory, ; $pocs_storage_dir: ensure => directory, ; $app_config_file: ensure => file, mode => '0600', content => template('soc/vuln-dashboard/app-config.yaml.erb'), ; } sunet::docker_compose { 'vuln-dashboard': service_name => 'vuln-dashboard', description => 'SOC vuln dashboard', compose_dir => '/opt/vuln-dashboard', content => template('soc/vuln-dashboard/docker-compose.yml.erb'), } }