diff --git a/charts/rm-resource-catalogue/Chart.yaml b/charts/rm-resource-catalogue/Chart.yaml index f87354b..759bf7a 100644 --- a/charts/rm-resource-catalogue/Chart.yaml +++ b/charts/rm-resource-catalogue/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.4.0 +version: 2.0.0-beta1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/rm-resource-catalogue/templates/resource-catalogue-configmap.yaml b/charts/rm-resource-catalogue/templates/resource-catalogue-configmap.yaml index 21255b5..09af758 100644 --- a/charts/rm-resource-catalogue/templates/resource-catalogue-configmap.yaml +++ b/charts/rm-resource-catalogue/templates/resource-catalogue-configmap.yaml @@ -1,70 +1,107 @@ apiVersion: v1 data: - pycsw.cfg: |+ - [server] -{{ if .Values.pycsw.config.server.home }} home={{ .Values.pycsw.config.server.home }} -{{ end }}{{ if .Values.pycsw.config.server.url }} url={{ .Values.pycsw.config.server.url }} -{{ end }}{{ if .Values.pycsw.config.server.mimetype }} mimetype={{ .Values.pycsw.config.server.mimetype }} -{{ end }}{{ if .Values.pycsw.config.server.encoding }} encoding={{ .Values.pycsw.config.server.encoding }} -{{ end }}{{ if .Values.pycsw.config.server.language }} language={{ .Values.pycsw.config.server.language }} -{{ end }}{{ if .Values.pycsw.config.server.maxrecords }} maxrecords={{ .Values.pycsw.config.server.maxrecords }} -{{ end }}{{ if .Values.pycsw.config.server.loglevel }} loglevel={{ .Values.pycsw.config.server.loglevel }} -{{ end }}{{ if .Values.pycsw.config.server.logfile }} logfile={{ .Values.pycsw.config.server.logfile }} -{{ end }}{{ if .Values.pycsw.config.server.ogc_schemas_base }} ogc_schemas_base={{ .Values.pycsw.config.server.ogc_schemas_base }} -{{ end }}{{ if .Values.pycsw.config.server.federatedcatalogues }} federatedcatalogues={{ .Values.pycsw.config.server.federatedcatalogues }} -{{ end }}{{ if .Values.pycsw.config.server.pretty_print }} pretty_print={{ .Values.pycsw.config.server.pretty_print }} -{{ end }}{{ if .Values.pycsw.config.server.gzip_compresslevel }} gzip_compresslevel={{ .Values.pycsw.config.server.gzip_compresslevel }} -{{ end }}{{ if .Values.pycsw.config.server.domainquerytype }} domainquerytype={{ .Values.pycsw.config.server.domainquerytype }} -{{ end }}{{ if .Values.pycsw.config.server.domaincounts }} domaincounts={{ .Values.pycsw.config.server.domaincounts }} -{{ end }}{{ if .Values.pycsw.config.server.spatial_ranking }} spatial_ranking={{ .Values.pycsw.config.server.spatial_ranking }} -{{ end }}{{ if .Values.pycsw.config.server.profiles }} profiles={{ .Values.pycsw.config.server.profiles }} -{{ end }}{{ if .Values.pycsw.config.server.workers }} workers={{ .Values.pycsw.config.server.workers }} + pycsw.yml: |+ + server: +{{ if .Values.pycsw.config.server.home }} home: {{ .Values.pycsw.config.server.home }} +{{ end }}{{ if .Values.pycsw.config.server.url }} url: {{ .Values.pycsw.config.server.url }} +{{ end }}{{ if .Values.pycsw.config.server.mimetype }} mimetype: {{ .Values.pycsw.config.server.mimetype }} +{{ end }}{{ if .Values.pycsw.config.server.encoding }} encoding: {{ .Values.pycsw.config.server.encoding }} +{{ end }}{{ if .Values.pycsw.config.server.language }} language: {{ .Values.pycsw.config.server.language }} +{{ end }}{{ if .Values.pycsw.config.server.maxrecords }} maxrecords: {{ .Values.pycsw.config.server.maxrecords }} +{{ end }}{{ if .Values.pycsw.config.server.ogc_schemas_base }} ogc_schemas_base: {{ .Values.pycsw.config.server.ogc_schemas_base }} +{{ end }}{{ if .Values.pycsw.config.server.pretty_print }} pretty_print: {{ .Values.pycsw.config.server.pretty_print }} +{{ end }}{{ if .Values.pycsw.config.server.gzip_compresslevel }} gzip_compresslevel: {{ .Values.pycsw.config.server.gzip_compresslevel }} +{{ end }}{{ if .Values.pycsw.config.server.domainquerytype }} domainquerytype: {{ .Values.pycsw.config.server.domainquerytype }} +{{ end }}{{ if .Values.pycsw.config.server.domaincounts }} domaincounts: {{ .Values.pycsw.config.server.domaincounts }} +{{ end }}{{ if .Values.pycsw.config.server.spatial_ranking }} spatial_ranking: {{ .Values.pycsw.config.server.spatial_ranking }} +{{ end }}{{ if .Values.pycsw.config.server.workers }} workers: {{ .Values.pycsw.config.server.workers }} +{{ end }}{{ if .Values.pycsw.config.server.timeout }} timeout: {{ .Values.pycsw.config.server.timeout }} {{ end }} - [manager] -{{ if .Values.pycsw.config.manager.transactions }} transactions={{ .Values.pycsw.config.manager.transactions }} -{{ end }}{{ if .Values.pycsw.config.manager.allowed_ips }} allowed_ips={{ .Values.pycsw.config.manager.allowed_ips }} -{{ end }}{{ if .Values.pycsw.config.manager.csw_harvest_pagesize }} csw_harvest_pagesize={{ .Values.pycsw.config.manager.csw_harvest_pagesize }} + logging: +{{ if .Values.pycsw.config.logging.level }} level: {{ .Values.pycsw.config.logging.level }} +{{ end }}{{ if .Values.pycsw.config.logging.logfile }} logfile: {{ .Values.pycsw.config.logging.logfile }} {{ end }} - [metadata:main] -{{ if .Values.pycsw.config.metadata.identification_title }} identification_title={{ .Values.pycsw.config.metadata.identification_title }} -{{ end }}{{ if .Values.pycsw.config.metadata.identification_abstract }} identification_abstract={{ .Values.pycsw.config.metadata.identification_abstract }} -{{ end }}{{ if .Values.pycsw.config.metadata.identification_keywords }} identification_keywords={{ .Values.pycsw.config.metadata.identification_keywords }} -{{ end }}{{ if .Values.pycsw.config.metadata.identification_keywords_type }} identification_keywords_type={{ .Values.pycsw.config.metadata.identification_keywords_type }} -{{ end }}{{ if .Values.pycsw.config.metadata.identification_fees }} identification_fees={{ .Values.pycsw.config.metadata.identification_fees }} -{{ end }}{{ if .Values.pycsw.config.metadata.identification_accessconstraints }} identification_accessconstraints={{ .Values.pycsw.config.metadata.identification_accessconstraints }} -{{ end }}{{ if .Values.pycsw.config.metadata.provider_name }} provider_name={{ .Values.pycsw.config.metadata.provider_name }} -{{ end }}{{ if .Values.pycsw.config.metadata.provider_url }} provider_url={{ .Values.pycsw.config.metadata.provider_url }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_name }} contact_name={{ .Values.pycsw.config.metadata.contact_name }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_position }} contact_position={{ .Values.pycsw.config.metadata.contact_position }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_address }} contact_address={{ .Values.pycsw.config.metadata.contact_address }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_city }} contact_city={{ .Values.pycsw.config.metadata.contact_city }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_stateorprovince }} contact_stateorprovince={{ .Values.pycsw.config.metadata.contact_stateorprovince }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_postalcode }} contact_postalcode={{ .Values.pycsw.config.metadata.contact_postalcode }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_country }} contact_country={{ .Values.pycsw.config.metadata.contact_country }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_phone }} contact_phone={{ .Values.pycsw.config.metadata.contact_phone }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_fax }} contact_fax={{ .Values.pycsw.config.metadata.contact_fax }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_email }} contact_email={{ .Values.pycsw.config.metadata.contact_email }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_url }} contact_url={{ .Values.pycsw.config.metadata.contact_url }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_hours }} contact_hours={{ .Values.pycsw.config.metadata.contact_hours }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_instructions }} contact_instructions={{ .Values.pycsw.config.metadata.contact_instructions }} -{{ end }}{{ if .Values.pycsw.config.metadata.contact_role }} contact_role={{ .Values.pycsw.config.metadata.contact_role }} + profiles: +{{- range $.Values.pycsw.config.profiles }} + - {{ . }} +{{- end }} +{{ if .Values.pycsw.config.federatedcatalogues }} federatedcatalogues: +{{- range $.Values.pycsw.config.federatedcatalogues }} + - {{ . }} +{{- end }} {{ end }} - [repository] -{{ if .Values.pycsw.config.repository.database }} database={{ .Values.pycsw.config.repository.database }} -{{ end }}{{ if .Values.pycsw.config.repository.mappings }} mappings={{ .Values.pycsw.config.repository.mappings }} -{{ end }}{{ if .Values.pycsw.config.repository.table }} table={{ .Values.pycsw.config.repository.table }} -{{ end }}{{ if .Values.pycsw.config.repository.filter }} filter={{ .Values.pycsw.config.repository.filter }} + manager: +{{ if .Values.pycsw.config.manager.transactions }} transactions: {{ .Values.pycsw.config.manager.transactions }} +{{ end }}{{ if .Values.pycsw.config.manager.allowed_ips }} allowed_ips: +{{- range $.Values.pycsw.config.manager.allowed_ips }} + - {{ . }} +{{- end }} +{{ end }}{{ if .Values.pycsw.config.manager.csw_harvest_pagesize }} csw_harvest_pagesize: {{ .Values.pycsw.config.manager.csw_harvest_pagesize }} {{ end }} - [metadata:inspire] -{{ if .Values.pycsw.config.inspire.enabled }} enabled={{ .Values.pycsw.config.inspire.enabled }} -{{ end }}{{ if .Values.pycsw.config.inspire.languages_supported }} languages_supported={{ .Values.pycsw.config.inspire.languages_supported }} -{{ end }}{{ if .Values.pycsw.config.inspire.default_language }} default_language={{ .Values.pycsw.config.inspire.default_language }} -{{ end }}{{ if .Values.pycsw.config.inspire.date }} date={{ .Values.pycsw.config.inspire.date }} -{{ end }}{{ if .Values.pycsw.config.inspire.gemet_keywords }} gemet_keywords={{ .Values.pycsw.config.inspire.gemet_keywords }} -{{ end }}{{ if .Values.pycsw.config.inspire.conformity_service }} conformity_service={{ .Values.pycsw.config.inspire.conformity_service }} -{{ end }}{{ if .Values.pycsw.config.inspire.contact_name }} contact_name={{ .Values.pycsw.config.inspire.contact_name }} -{{ end }}{{ if .Values.pycsw.config.inspire.contact_email }} contact_email={{ .Values.pycsw.config.inspire.contact_email }} -{{ end }}{{ if .Values.pycsw.config.inspire.temp_extent }} temp_extent={{ .Values.pycsw.config.inspire.temp_extent }} + metadata: + identification: +{{ if .Values.pycsw.config.metadata.identification.title }} title: {{ .Values.pycsw.config.metadata.identification.title }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.description }} description: {{ .Values.pycsw.config.metadata.identification.description }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.keywords }} keywords: +{{- range $.Values.pycsw.config.metadata.identification.keywords }} + - {{ . }} +{{- end }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.keywords_type }} keywords_type: {{ .Values.pycsw.config.metadata.identification.keywords_type }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.fees }} fees: {{ .Values.pycsw.config.metadata.identification.fees }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.accessconstraints }} accessconstraints: {{ .Values.pycsw.config.metadata.identification.accessconstraints }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.terms_of_service }} terms_of_service: {{ .Values.pycsw.config.metadata.identification.terms_of_service }} +{{ end }}{{ if .Values.pycsw.config.metadata.identification.url }} url: {{ .Values.pycsw.config.metadata.identification.url }} +{{ end }} license: +{{ if .Values.pycsw.config.metadata.license.name }} name: {{ .Values.pycsw.config.metadata.license.name }} +{{ end }}{{ if .Values.pycsw.config.metadata.license.url }} url: {{ .Values.pycsw.config.metadata.license.url }} +{{ end }} provider: +{{ if .Values.pycsw.config.metadata.provider.name }} name: {{ .Values.pycsw.config.metadata.provider.name }} +{{ end }}{{ if .Values.pycsw.config.metadata.provider.url }} url: {{ .Values.pycsw.config.metadata.provider.url }} +{{ end }} contact: +{{ if .Values.pycsw.config.metadata.contact.name }} name: {{ .Values.pycsw.config.metadata.contact.name }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.position }} position: {{ .Values.pycsw.config.metadata.contact.position }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.address }} address: {{ .Values.pycsw.config.metadata.contact.address }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.city }} city: {{ .Values.pycsw.config.metadata.contact.city }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.stateorprovince }} stateorprovince: {{ .Values.pycsw.config.metadata.contact.stateorprovince }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.postalcode }} postalcode: {{ .Values.pycsw.config.metadata.contact.postalcode }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.country }} country: {{ .Values.pycsw.config.metadata.contact.country }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.phone }} phone: {{ .Values.pycsw.config.metadata.contact.phone }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.fax }} fax: {{ .Values.pycsw.config.metadata.contact.fax }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.email }} email: {{ .Values.pycsw.config.metadata.contact.email }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.url }} url: {{ .Values.pycsw.config.metadata.contact.url }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.hours }} hours: {{ .Values.pycsw.config.metadata.contact.hours }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.instructions }} instructions: {{ .Values.pycsw.config.metadata.contact.instructions }} +{{ end }}{{ if .Values.pycsw.config.metadata.contact.role }} role: {{ .Values.pycsw.config.metadata.contact.role }} +{{ end }} inspire: +{{ if .Values.pycsw.config.metadata.inspire.enabled }} enabled: {{ .Values.pycsw.config.metadata.inspire.enabled }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.languages_supported }} languages_supported: +{{- range $.Values.pycsw.config.metadata.inspire.languages_supported }} + - {{ . }} +{{- end }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.default_language }} default_language: {{ .Values.pycsw.config.metadata.inspire.default_language }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.date }} date: {{ .Values.pycsw.config.metadata.inspire.date }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.gemet_keywords }} gemet_keywords: +{{- range $.Values.pycsw.config.metadata.inspire.gemet_keywords }} + - {{ . }} +{{- end }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.conformity_service }} conformity_service: {{ .Values.pycsw.config.metadata.inspire.conformity_service }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.contact_name }} contact_name: {{ .Values.pycsw.config.metadata.inspire.contact_name }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.contact_email }} contact_email: {{ .Values.pycsw.config.metadata.inspire.contact_email }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.temp_extent }} temp_extent: +{{ if .Values.pycsw.config.metadata.inspire.temp_extent.begin }} begin: {{ .Values.pycsw.config.metadata.inspire.temp_extent.begin }} +{{ end }}{{ if .Values.pycsw.config.metadata.inspire.temp_extent.end }} end: {{ .Values.pycsw.config.metadata.inspire.temp_extent.end }} +{{- end }} +{{ end }} + repository: +{{ if .Values.pycsw.config.repository.database }} database: {{ .Values.pycsw.config.repository.database }} +{{ end }}{{ if .Values.pycsw.config.repository.mappings }} mappings: {{ .Values.pycsw.config.repository.mappings }} +{{ end }}{{ if .Values.pycsw.config.repository.table }} table: {{ .Values.pycsw.config.repository.table }} +{{ end }}{{ if .Values.pycsw.config.repository.filter }} filter: {{ .Values.pycsw.config.repository.filter }} +{{ end }}{{ if .Values.pycsw.config.repository.max_retries }} max_retries: {{ .Values.pycsw.config.repository.max_retries }} +{{ end }}{{ if .Values.pycsw.config.repository.facets }} facets: +{{- range $.Values.pycsw.config.repository.facets }} + - {{ . }} +{{- end }} {{ end }} kind: ConfigMap diff --git a/charts/rm-resource-catalogue/values.yaml b/charts/rm-resource-catalogue/values.yaml index c9376b3..36a18ed 100644 --- a/charts/rm-resource-catalogue/values.yaml +++ b/charts/rm-resource-catalogue/values.yaml @@ -69,7 +69,7 @@ pycsw: repository: geopython/pycsw pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: "eoepca-1.4.0" + tag: "eoepca-2.0.0-beta1" container_port: 8000 service_name: resource-catalogue-service service_type: ClusterIP @@ -83,62 +83,86 @@ pycsw: volume_path: /etc/pycsw config: server: - home: /home/pycsw url: https://resource-catalogue.demo.eoepca.org/ mimetype: application/xml; charset=UTF-8 encoding: UTF-8 language: en-US maxrecords: 10 - loglevel: DEBUG - # logfile: " " # ogc_schemas_base: http://foo - # federatedcatalogues: http://catalog.data.gov/csw # pretty_print: true # gzip_compresslevel: 8 # domainquerytype: range # domaincounts: true # spatial_ranking: true - profiles: apiso # workers: 2 + timeout: 30 + logging: + level: ERROR + # logfile: /tmp/pycsw.log + profiles: + - apiso + # federatedcatalogues: + # - http://catalog.data.gov/csw manager: transactions: "false" - allowed_ips: 127.0.0.1 - # csw_harvest_pagesize: 10 + allowed_ips: + - 127.0.0.1 + csw_harvest_pagesize: 10 metadata: - identification_title: pycsw Geospatial Catalogue - identification_abstract: pycsw is an OGC CSW server implementation written in Python - identification_keywords: catalogue,discovery,metadata - identification_keywords_type: theme - identification_fees: None - identification_accessconstraints: None - provider_name: Organization Name - provider_url: https://pycsw.org/ - contact_name: Lastname, Firstname - contact_position: Position Title - contact_address: Mailing Address - contact_city: City - contact_stateorprovince: Administrative Area - contact_postalcode: Zip or Postal Code - contact_country: Country - contact_phone: +xx-xxx-xxx-xxxx - contact_fax: +xx-xxx-xxx-xxxx - contact_email: Email Address - contact_url: Contact URL - contact_hours: Hours of Service - contact_instructions: During hours of service. Off on weekends. - contact_role: pointOfContact + identification: + title: pycsw Geospatial Catalogue + description: pycsw is an OARec and OGC CSW server implementation written in Python + keywords: + - catalogue + - discovery + - metadata + keywords_type: theme + fees: None + accessconstraints: None + terms_of_service: https://creativecommons.org/licenses/by/4.0 + url: https://example.org + license: + name: CC-BY 4.0 license + url: https://creativecommons.org/licenses/by/4.0 + provider: + name: Organization Name + url: https://pycsw.org/ + contact: + name: Lastname, Firstname + position: Position Title + address: Mailing Address + city: City + stateorprovince: Administrative Area + postalcode: Zip or Postal Code + country: Country + phone: +xx-xxx-xxx-xxxx + fax: +xx-xxx-xxx-xxxx + email: Email Address + url: Contact URL + hours: Hours of Service + instructions: During hours of service. Off on weekends. + role: pointOfContact + inspire: + enabled: "true" + languages_supported: + - eng + - gre + default_language: eng + date: YYYY-MM-DD + gemet_keywords: + - Utility and governmental services + conformity_service: notEvaluated + contact_name: Organization Name + contact_email: Email Address + temp_extent: + begin: YYYY-MM-DD + end: YYYY-MM-DD repository: database: postgresql://postgres:mypass@resource-catalogue-db/pycsw table: records # mappings: path/to/mappings.py # filter: type = 'http://purl.org/dc/dcmitype/Dataset' - inspire: - enabled: "true" - languages_supported: eng,gre - default_language: eng - date: YYYY-MM-DD - gemet_keywords: Utility and governmental services - conformity_service: notEvaluated - contact_name: Organization Name - contact_email: Email Address - temp_extent: YYYY-MM-DD/YYYY-MM-DD + # max_retries: 5 + facets: + - type + - title