Hi Marco,
there are many ways to do so, depending on how often / automated you need to run this job, whether you wish to publish a snapshot of your data or point to a live webservice.
Option 1: postGIS > GeoJSON file > CKAN file resource
If you want to publish a simple snapshot of one spatially referenced dataset from PostGIS to CKAN:
Since you mentioned PostGIS - is your data spatial? Then you could export your data as a GeoJSON file, and simply upload the GeoJSON file as CKAN resource.
ogr2ogr -f GeoJSON out.json \
"PG:host=localhost dbname=gis user=ubuntu password=toomanysecrets" \
-sql "select way,name,amenity from planet_osm_point where amenenity is not null"
The same process goes for non-spatial datasets: dump to CSV, upload as file.
Option 2: postGIS > GeoServer WMS/WFS layer > WxS URL > CKAN URL resource
If you want to publish one dataset from PostGIS as a live webservice, you could host the PostGIS table on a GeoServer and publish the WMS link as resource URL to CKAN.
Both options are straight forward on the CKAN side as they boil down to creating a CKAN a resource file or URL, respectively.
If you need to publish more than one dataset one-off, the above is easily scripted in Python or R.
I found using the harvester extension works fine for simple cases, but too limiting for my particular use cases, as it collided with some customisations to our CKAN dataset schema. My sweet spot turned out to be simple iPython or RMarkdown notebooks / R scripts reading files / URLs and uploading to the CKAN API.
API docs:
Hope that helps!
Florian