Slackbot
11/13/2022, 1:37 PMAsaf Cohen
11/13/2022, 1:39 PMDor Alon
11/13/2022, 1:41 PM[32m2022-11-13T13:31:14.953076+0000[0m | [34mopal_client.data.rpc [0m|[1m INFO | Received notification of event: policy_data[0m
[32m2022-11-13T13:31:14.953271+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Updating policy data, reason: None[0m
[32m2022-11-13T13:31:14.953802+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Triggering data update with id: 9a417880e5ab4837a2f82b5e294ee24f[0m
[32m2022-11-13T13:31:14.953926+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Fetching policy data[0m
[32m2022-11-13T13:31:14.954054+0000[0m | [34mopal_client.data.fetcher [0m|[1m INFO | Fetching data from url: <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>[0m
[32m2022-11-13T13:31:20.881123+0000[0m | [34muvicorn.protocols.http.httptools_impl [0m|[1m INFO | 10.155.7.102:54478 - "GET /healthcheck HTTP/1.1" 200[0m
[32m2022-11-13T13:31:20.881448+0000[0m | [34muvicorn.protocols.http.httptools_impl [0m|[1m INFO | 10.155.7.102:54480 - "GET /healthcheck HTTP/1.1" 200[0m
[32m2022-11-13T13:31:24.954206+0000[0m | [34mopal_client.data.fetcher [0m|[31m[1mERROR | Timeout while fetching url: <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/lib/python3.10/asyncio/locks.py", line 214, in wait
await fut
β <Future cancelled>
[31m[1masyncio.exceptions.CancelledError[0m
[1mDuring handling of the above exception, another exception occurred:[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
return fut.result()
β β <method 'result' of '_asyncio.Task' objects>
β <Task cancelled name='Task-20284' coro=<Event.wait() done, defined at /usr/local/lib/python3.10/asyncio/locks.py:201>>
[31m[1masyncio.exceptions.CancelledError[0m
[1mThe above exception was the direct cause of the following exception:[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/bin/gunicorn", line 33, in <module>
sys.exit(load_entry_point('gunicorn==20.1.0', 'console_scripts', 'gunicorn')())
β β β <function importlib_load_entry_point at 0x7f8698c52cb0>
β β <built-in function exit>
β <module 'sys' (built-in)>
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
β <class 'gunicorn.app.wsgiapp.WSGIApplication'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
β β <gunicorn.app.wsgiapp.WSGIApplication object at 0x7f8698c33cd0>
β <class 'gunicorn.arbiter.Arbiter'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 202, in run
self.manage_workers()
β β <function Arbiter.manage_workers at 0x7f86980eed40>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
self.spawn_workers()
β β <function Arbiter.spawn_workers at 0x7f86980eee60>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 622, in spawn_workers
self.spawn_worker()
β β <function Arbiter.spawn_worker at 0x7f86980eedd0>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
β β <function UvicornWorker.init_process at 0x7f86965740d0>
β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
File "/usr/local/lib/python3.10/site-packages/uvicorn/workers.py", line 66, in init_process
super(UvicornWorker, self).init_process()
β β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
β <class 'uvicorn.workers.UvicornWorker'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/workers/base.py", line 142, in init_process
self.run()
β β <function UvicornWorker.run at 0x7f8696574280>
β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
File "/usr/local/lib/python3.10/site-packages/uvicorn/workers.py", line 83, in run
return asyncio.run(self._serve())
β β β β <function UvicornWorker._serve at 0x7f86965741f0>
β β β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
β β <function run at 0x7f8697b11870>
β <module 'asyncio' from '/usr/local/lib/python3.10/asyncio/__init__.py'>
File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
β β β <coroutine object UvicornWorker._serve at 0x7f8695478740>
β β <method 'run_until_complete' of 'uvloop.loop.Loop' objects>
β <uvloop.Loop running=True closed=False debug=False>
> File "/usr/local/lib/python3.10/site-packages/opal_client-0.3.1-py3.10.egg/opal_client/data/fetcher.py", line 70, in handle_url
response = await self._engine.handle_url(url, config=config)
β β β β β None
β β β β '<http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>'
β β β <function FetchingEngine.handle_url at 0x7f8695a136d0>
β β <opal_common.fetcher.engine.fetching_engine.FetchingEngine object at 0x7f86957a4d60>
β <opal_client.data.fetcher.DataFetcher object at 0x7f86957a62f0>
File "/usr/local/lib/python3.10/site-packages/opal_common-0.3.1-py3.10.egg/opal_common/fetcher/engine/fetching_engine.py", line 114, in handle_url
await asyncio.wait_for(wait_event.wait(), timeout)
β β β β β 10
β β β β <function Event.wait at 0x7f8697937f40>
β β β <asyncio.locks.Event object at 0x7f86915cf310 [unset]>
β β <function wait_for at 0x7f8697936dd0>
β <module 'asyncio' from '/usr/local/lib/python3.10/asyncio/__init__.py'>
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
raise exceptions.TimeoutError() from exc
β β <class 'asyncio.exceptions.TimeoutError'>
β <module 'asyncio.exceptions' from '/usr/local/lib/python3.10/asyncio/exceptions.py'>
[31m[1masyncio.exceptions.TimeoutError[0m
[32m2022-11-13T13:31:24.956714+0000[0m | [34mopal_client.data.updater [0m|[31m[1mERROR | Failed to fetch url <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>, got exception: [0m
[32m2022-11-13T13:31:24.957016+0000[0m | [34mopal_client...base_policy_store_client [0m|[31m[1mERROR | OPA transaction failed, transaction id=9a417880e5ab4837a2f82b5e294ee24f, actions=[], error=None[0m
[32m2022-11-13T13:31:35.880410+0000[0m | [34muvicorn.protocols.http.httptools_impl [0m|[1m INFO | 10.155.7.102:46604 - "GET /healthcheck HTTP/1.1" 200[0m
Raz Co
11/13/2022, 1:44 PM<http://authz-opal-data-api:3000>
and getting timeout.
Is it an internal k8s service ?
Maybe you would want to use the K8sβ service FQDN - <svc_name>.<namespace>.cluster.local
also, is 3000
the right port ? is it exposed ?Dor Alon
11/13/2022, 1:46 PMRaz Co
11/13/2022, 1:49 PMAsaf Cohen
11/13/2022, 1:50 PMDor Alon
11/13/2022, 1:56 PMcurl <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>
Asaf Cohen
11/13/2022, 1:58 PMDor Alon
11/13/2022, 1:59 PMRaz Co
11/13/2022, 2:00 PMAsaf Cohen
11/13/2022, 2:00 PMDor Alon
11/13/2022, 2:02 PMopal@opal-client-2mc5d:/opal$ curl <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>
{"roles":["role1","role2"],"bundles":["bundle4"],"resources_scope":{"listings":["12345","1234","1111","2222"]},"roles_scope":{"role1":["grn:guesty:listings/12345","grn:guesty:listings/1234","grn:guesty:listings/1111","grn:guesty:listings/2222"],"role2":["grn:guesty:listings/12345"]}}
Dor Alon
11/13/2022, 2:03 PMRaz Co
11/13/2022, 2:04 PMRaz Co
11/13/2022, 2:06 PMauthz-opal-data-api
is receiving any request to understand where the request failsDor Alon
11/13/2022, 2:36 PMauthz-opal-data-api
any chance you disregard the "save_method" parameter in the update request ?Dor Alon
11/13/2022, 3:04 PMAsaf Cohen
11/13/2022, 3:11 PMAsaf Cohen
11/13/2022, 3:11 PMAsaf Cohen
11/13/2022, 3:11 PMAsaf Cohen
11/13/2022, 3:16 PM{
"entries": [
{
"url": "<http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>",
"topics": [
"policy_data"
],
"dst_path": "/user_5d48a21cdda60600237e0648",
"save_method": "GET"
}
]
}
do this:
{
"entries": [
{
"url": "<http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>",
"topics": ["policy_data"],
"dst_path": "/user_5d48a21cdda60600237e0648",
"config": { // this is an instance of HttpFetcherConfig
"method": "get"
// "headers": { another example
// ...
// }
}
}
]
}
Asaf Cohen
11/13/2022, 3:16 PMconfig
key inside an entry is passed directly to the fetcher (in this case the http fetcher)Asaf Cohen
11/13/2022, 3:17 PMsave_method
key (which is outside the config) affects the method we use to call the OPA api to store the data returned from the fetcherDor Alon
11/13/2022, 3:20 PMAsaf Cohen
11/13/2022, 3:20 PMDor Alon
11/13/2022, 3:28 PMAsaf Cohen
11/13/2022, 3:29 PMAsaf Cohen
11/13/2022, 3:29 PMDor Alon
11/13/2022, 3:29 PMAsaf Cohen
11/13/2022, 3:29 PMAsaf Cohen
11/13/2022, 3:30 PMDor Alon
11/13/2022, 3:30 PM[32m2022-11-13T15:28:30.052463+0000[0m | [34mopal_client.data.rpc [0m|[1m INFO | Received notification of event: policy_data[0m
[32m2022-11-13T15:28:30.052827+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Updating policy data, reason: None[0m
[32m2022-11-13T15:28:30.053125+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Triggering data update with id: d24fc44901664b83b03008debaad6d99[0m
[32m2022-11-13T15:28:30.053280+0000[0m | [34mopal_client.data.updater [0m|[1m INFO | Fetching policy data[0m
[32m2022-11-13T15:28:30.053450+0000[0m | [34mopal_client.data.fetcher [0m|[1m INFO | Fetching data from url: <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>[0m
[32m2022-11-13T15:28:35.880695+0000[0m | [34muvicorn.protocols.http.httptools_impl [0m|[1m INFO | 10.155.7.102:52124 - "GET /healthcheck HTTP/1.1" 200[0m
[32m2022-11-13T15:28:40.054390+0000[0m | [34mopal_client.data.fetcher [0m|[31m[1mERROR | Timeout while fetching url: <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/lib/python3.10/asyncio/locks.py", line 214, in wait
await fut
β <Future cancelled>
[31m[1masyncio.exceptions.CancelledError[0m
[1mDuring handling of the above exception, another exception occurred:[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
return fut.result()
β β <method 'result' of '_asyncio.Task' objects>
β <Task cancelled name='Task-21123' coro=<Event.wait() done, defined at /usr/local/lib/python3.10/asyncio/locks.py:201>>
[31m[1masyncio.exceptions.CancelledError[0m
[1mThe above exception was the direct cause of the following exception:[0m
[33m[1mTraceback (most recent call last):[0m
File "/usr/local/bin/gunicorn", line 33, in <module>
sys.exit(load_entry_point('gunicorn==20.1.0', 'console_scripts', 'gunicorn')())
β β β <function importlib_load_entry_point at 0x7f8698c52cb0>
β β <built-in function exit>
β <module 'sys' (built-in)>
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
β <class 'gunicorn.app.wsgiapp.WSGIApplication'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.10/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
β β <gunicorn.app.wsgiapp.WSGIApplication object at 0x7f8698c33cd0>
β <class 'gunicorn.arbiter.Arbiter'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 202, in run
self.manage_workers()
β β <function Arbiter.manage_workers at 0x7f86980eed40>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
self.spawn_workers()
β β <function Arbiter.spawn_workers at 0x7f86980eee60>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 622, in spawn_workers
self.spawn_worker()
β β <function Arbiter.spawn_worker at 0x7f86980eedd0>
β <gunicorn.arbiter.Arbiter object at 0x7f8697fcad40>
File "/usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
β β <function UvicornWorker.init_process at 0x7f86965740d0>
β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
File "/usr/local/lib/python3.10/site-packages/uvicorn/workers.py", line 66, in init_process
super(UvicornWorker, self).init_process()
β β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
β <class 'uvicorn.workers.UvicornWorker'>
File "/usr/local/lib/python3.10/site-packages/gunicorn/workers/base.py", line 142, in init_process
self.run()
β β <function UvicornWorker.run at 0x7f8696574280>
β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
File "/usr/local/lib/python3.10/site-packages/uvicorn/workers.py", line 83, in run
return asyncio.run(self._serve())
β β β β <function UvicornWorker._serve at 0x7f86965741f0>
β β β <uvicorn.workers.UvicornWorker object at 0x7f869690beb0>
β β <function run at 0x7f8697b11870>
β <module 'asyncio' from '/usr/local/lib/python3.10/asyncio/__init__.py'>
File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
β β β <coroutine object UvicornWorker._serve at 0x7f8695478740>
β β <method 'run_until_complete' of 'uvloop.loop.Loop' objects>
β <uvloop.Loop running=True closed=False debug=False>
> File "/usr/local/lib/python3.10/site-packages/opal_client-0.3.1-py3.10.egg/opal_client/data/fetcher.py", line 70, in handle_url
response = await self._engine.handle_url(url, config=config)
β β β β β None
β β β β '<http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>'
β β β <function FetchingEngine.handle_url at 0x7f8695a136d0>
β β <opal_common.fetcher.engine.fetching_engine.FetchingEngine object at 0x7f86957a4d60>
β <opal_client.data.fetcher.DataFetcher object at 0x7f86957a62f0>
File "/usr/local/lib/python3.10/site-packages/opal_common-0.3.1-py3.10.egg/opal_common/fetcher/engine/fetching_engine.py", line 114, in handle_url
await asyncio.wait_for(wait_event.wait(), timeout)
β β β β β 10
β β β β <function Event.wait at 0x7f8697937f40>
β β β <asyncio.locks.Event object at 0x7f8690ff7b50 [unset]>
β β <function wait_for at 0x7f8697936dd0>
β <module 'asyncio' from '/usr/local/lib/python3.10/asyncio/__init__.py'>
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
raise exceptions.TimeoutError() from exc
β β <class 'asyncio.exceptions.TimeoutError'>
β <module 'asyncio.exceptions' from '/usr/local/lib/python3.10/asyncio/exceptions.py'>
[31m[1masyncio.exceptions.TimeoutError[0m
[32m2022-11-13T15:28:40.057551+0000[0m | [34mopal_client.data.updater [0m|[31m[1mERROR | Failed to fetch url <http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>, got exception: [0m
[32m2022-11-13T15:28:40.057920+0000[0m | [34mopal_client...base_policy_store_client [0m|[31m[1mERROR | OPA transaction failed, transaction id=d24fc44901664b83b03008debaad6d99, actions=[], error=None[0m
[32m2022-11-13T15:28:50.881306+0000[0m | [34muvicorn.protocols.http.httptools_impl [0m|[1m INFO | 10.155.7.102:58760 - "GET /healthcheck HTTP/1.1" 200[0m
Dor Alon
11/13/2022, 3:31 PMcurl --location --request POST '10.155.11.1:7002/data/config' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9' \
--header 'Content-Type: application/json' \
--data-raw '{
"entries": [
{
"url": "<http://authz-opal-data-api:3000/data-api/user_5d48a21cdda60600237e0648>",
"topics": ["policy_data"],
"dst_path": "/user_5d48a21cdda60600237e0648",
"config": { "method": "GET"}
}
]
}'
Asaf Cohen
11/13/2022, 3:49 PMAsaf Cohen
11/13/2022, 3:49 PMDor Alon
11/13/2022, 3:50 PMDor Alon
11/13/2022, 3:50 PMAsaf Cohen
11/13/2022, 3:50 PMDor Alon
11/13/2022, 3:51 PMAsaf Cohen
11/13/2022, 3:51 PMDor Alon
11/13/2022, 3:53 PMDor Alon
11/13/2022, 3:55 PMDor Alon
11/14/2022, 11:19 AMAsaf Cohen
11/14/2022, 11:20 AMDor Alon
11/14/2022, 11:21 AMAsaf Cohen
11/14/2022, 11:24 AMDor Alon
11/14/2022, 11:27 AMAsaf Cohen
11/14/2022, 12:45 PMDor Alon
11/14/2022, 1:29 PMAsaf Cohen
11/14/2022, 2:09 PMOri Shavit
11/14/2022, 2:09 PMDor Alon
11/14/2022, 2:11 PMOri Shavit
11/14/2022, 2:11 PMDor Alon
11/21/2022, 1:02 PMDor Alon
11/21/2022, 1:15 PMAsaf Cohen
11/21/2022, 1:23 PMOri Shavit
11/21/2022, 2:36 PMDor Alon
11/21/2022, 2:48 PMOri Shavit
11/24/2022, 7:00 PMDor Alon
11/29/2022, 5:04 PMAsaf Cohen
11/29/2022, 5:21 PMDor Alon
11/30/2022, 6:29 AMDor Alon
12/01/2022, 8:40 AMDor Alon
12/01/2022, 8:42 AMAsaf Cohen
12/01/2022, 8:55 AMDor Alon
12/01/2022, 8:55 AMAsaf Cohen
12/01/2022, 7:23 PMAsaf Cohen
12/01/2022, 7:23 PMDor Alon
12/04/2022, 6:38 AMDor Alon
12/04/2022, 7:33 AMDor Alon
12/04/2022, 7:53 AMAsaf Cohen
12/04/2022, 8:31 AMAsaf Cohen
12/04/2022, 8:31 AMAsaf Cohen
12/04/2022, 8:32 AMDor Alon
12/04/2022, 8:32 AMAsaf Cohen
12/04/2022, 8:34 AMAsaf Cohen
12/04/2022, 9:07 AMversion: "3.8"
services:
# When scaling the opal-server to multiple nodes and/or multiple workers, we use
# a *broadcast* channel to sync between all the instances of opal-server.
# Under the hood, this channel is implemented by encode/broadcaster (see link below).
# At the moment, the broadcast channel can be either: postgresdb, redis or kafka.
# The format of the broadcaster URI string (the one we pass to opal server as `OPAL_BROADCAST_URI`) is specified here:
# <https://github.com/encode/broadcaster#available-backends>
broadcast_channel:
image: postgres:alpine
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
opal_server:
# by default we run opal-server from latest official image
image: permitio/opal-server:0.4.0-rc
environment:
# the broadcast backbone uri used by opal server workers (see comments above for: broadcast_channel)
- OPAL_BROADCAST_URI=<postgres://postgres:postgres@broadcast_channel:5432/postgres>
# number of uvicorn workers to run inside the opal-server container
- UVICORN_NUM_WORKERS=4
# the git repo hosting our policy
# - if this repo is not public, you can pass an ssh key via `OPAL_POLICY_REPO_SSH_KEY`)
# - the repo we pass in this example is *public* and acts as an example repo with dummy rego policy
# - for more info, see: <https://docs.opal.ac/tutorials/track_a_git_repo>
- OPAL_POLICY_REPO_URL=<https://github.com/permitio/opal-example-policy-repo>
# in this example we will use a polling interval of 30 seconds to check for new policy updates (git commits affecting the rego policy).
# however, it is better to utilize a git *webhook* to trigger the server to check for changes only when the repo has new commits.
# for more info see: <https://docs.opal.ac/tutorials/track_a_git_repo>
- OPAL_POLICY_REPO_POLLING_INTERVAL=30
# configures from where the opal client should initially fetch data (when it first goes up, after disconnection, etc).
# the data sources represents from where the opal clients should get a "complete picture" of the data they need.
# after the initial sources are fetched, the client will subscribe only to update notifications sent by the server.
- OPAL_DATA_CONFIG_SOURCES={"config":{"entries":[{"url":"<http://opal_server:7002/policy-data>","topics":["policy_data"],"dst_path":"/static"}]}}
- OPAL_LOG_FORMAT_INCLUDE_PID=true
ports:
# exposes opal server on the host machine, you can access the server at: <http://localhost:7002>
- "7002:7002"
depends_on:
- broadcast_channel
opal_client:
# by default we run opal-client from latest official image
image: permitio/opal-client:0.4.0-rc
environment:
- OPAL_SERVER_URL=<http://opal_server:7002>
- OPAL_LOG_FORMAT_INCLUDE_PID=true
- OPAL_INLINE_OPA_LOG_FORMAT=http
ports:
# exposes opal client on the host machine, you can access the client at: <http://localhost:7000>
- "7766:7000"
# exposes the OPA agent (being run by OPAL) on the host machine
# you can access the OPA api that you know and love at: <http://localhost:8181>
# OPA api docs are at: <https://www.openpolicyagent.org/docs/latest/rest-api/>
- "8181:8181"
depends_on:
- opal_server
# this command is not necessary when deploying OPAL for real, it is simply a trick for dev environments
# to make sure that opal-server is already up before starting the client.
command: sh -c "./wait-for.sh opal_server:7002 --timeout=20 -- ./start.sh"
Dor Alon
12/04/2022, 9:19 AMexec ./start.sh: exec format error
do you have a version change log ?Asaf Cohen
12/04/2022, 9:21 AMAsaf Cohen
12/04/2022, 9:21 AMRaz Co
12/04/2022, 9:22 AMAsaf Cohen
12/04/2022, 9:22 AMRaz Co
12/04/2022, 2:22 PMdocker inspect image <IMAGE NAME>
Dor Alon
12/04/2022, 2:38 PMDor Alon
12/04/2022, 2:38 PMRaz Co
12/04/2022, 2:41 PMDor Alon
12/04/2022, 3:04 PMAsaf Cohen
12/04/2022, 4:36 PMAsaf Cohen
12/05/2022, 10:25 AMAsaf Cohen
12/05/2022, 10:26 AMAsaf Cohen
12/05/2022, 10:26 AMDor Alon
12/05/2022, 10:48 AM