bacalhau-project / bacalhau

Compute over Data framework for public, transparent, and optionally verifiable computation
https://docs.bacalhau.org
Apache License 2.0
714 stars 89 forks source link

Using 0.0.0.0 as the default (rather than the public network) #4472

Closed aronchick closed 2 months ago

aronchick commented 2 months ago

Unclear why this is happening? Could be something that migrated over, but i don't think so?

 b15 job list
16:07:30.34 | INF pkg/config/config.go:211 > Config loaded from: [], and with data-dir v1.5.0/data-dir
failed request: failed to authorize user: Get "http://0.0.0.0:1234/api/v1/auth": dial tcp 0.0.0.0:1234: connect: connection refused
❯ b15 config list
16:07:51.055 | INF pkg/config/config.go:211 > Config loaded from: [], and with data-dir v1.5.0/data-dir
 KEY                                               VALUE                        DESCRIPTION
 api.auth.accesspolicypath                                                      AccessPolicyPath is the path to a file or directory that will be loaded as the
                                                                                policy to apply to all inbound API requests. If unspecified, a policy that
                                                                                permits access to all API endpoints to both authenticated and unauthenticated
                                                                                users (the default as of v1.2.0) will be used.
 api.auth.methods                                  map[ClientKey:{challenge }]  Methods maps "method names" to authenticator implementations. A method name is a
                                                                                human-readable string chosen by the person configuring the system that is shown
                                                                                to users to help them pick the authentication method they want to use. There can
                                                                                be multiple usages of the same Authenticator *type* but with different configs
                                                                                and parameters, each identified with a unique method name. For example, if an
                                                                                implementation wants to allow users to log in with Github or Bitbucket, they
                                                                                might both use an authenticator implementation of type "oidc", and each would
                                                                                appear once on this provider with key / method name "github" and "bitbucket". By
                                                                                default, only a single authentication method that accepts authentication via
                                                                                client keys will be enabled.
 api.host                                          0.0.0.0                      Host specifies the hostname or IP address on which the API server listens or the
                                                                                client connects.
 api.port                                          1234                         Port specifies the port number on which the API server listens or the client
                                                                                connects.
 api.tls.autocert                                                               AutoCert specifies the domain for automatic certificate generation.
 api.tls.autocertcachepath                                                      AutoCertCachePath specifies the directory to cache auto-generated certificates.
 api.tls.cafile                                                                 CAFile specifies the path to the Certificate Authority file.
 api.tls.certfile                                                               CertFile specifies the path to the TLS certificate file.
 api.tls.insecure                                  false                        Insecure allows insecure TLS connections (e.g., self-signed certificates).
 api.tls.keyfile                                                                KeyFile specifies the path to the TLS private key file.
 api.tls.selfsigned                                false                        SelfSigned indicates whether to use a self-signed certificate.
 api.tls.usetls                                    false                        UseTLS indicates whether to use TLS for client connections.
 compute.allocatedcapacity.cpu                     70%                          CPU specifies the default amount of CPU allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "100m" for 0.1 CPU cores). This value is used when
                                                                                the task hasn't explicitly set its CPU requirement.
 compute.allocatedcapacity.disk                    70%                          Disk specifies the default amount of disk space allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte). This value is
                                                                                used when the task hasn't explicitly set its disk space requirement.
 compute.allocatedcapacity.gpu                     100%                         GPU specifies the default number of GPUs allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "1" for 1 GPU). This value is used when the task
                                                                                hasn't explicitly set its GPU requirement.
 compute.allocatedcapacity.memory                  70%                          Memory specifies the default amount of memory allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes). This value
                                                                                is used when the task hasn't explicitly set its memory requirement.
 compute.allowlistedlocalpaths                     []                           AllowListedLocalPaths specifies a list of local file system paths that the
                                                                                compute node is allowed to access.
 compute.enabled                                   false                        Enabled indicates whether the Web UI is enabled.
 compute.heartbeat.infoupdateinterval              1m0s                         InfoUpdateInterval specifies the time between updates of non-resource
                                                                                information to the orchestrator.
 compute.heartbeat.interval                        15s                          Interval specifies the time between update checks, when set to 0 update checks
                                                                                are not performed.
 compute.heartbeat.resourceupdateinterval          30s                          ResourceUpdateInterval specifies the time between updates of resource
                                                                                information to the orchestrator.
 compute.labels                                    map[]                        Labels are key-value pairs used to describe and categorize the compute node.
 compute.orchestrators                             [nats://127.0.0.1:4222]      Orchestrators specifies a list of orchestrator endpoints that this compute node
                                                                                connects to.
 compute.tls.autocert                                                           AutoCert specifies the domain for automatic certificate generation.
 compute.tls.autocertcachepath                                                  AutoCertCachePath specifies the directory to cache auto-generated certificates.
 compute.tls.cafile                                                             CAFile specifies the path to the Certificate Authority file.
 compute.tls.certfile                                                           CertFile specifies the path to the TLS certificate file.
 compute.tls.insecure                              false                        Insecure allows insecure TLS connections (e.g., self-signed certificates).
 compute.tls.keyfile                                                            KeyFile specifies the path to the TLS private key file.
 compute.tls.selfsigned                            false                        SelfSigned indicates whether to use a self-signed certificate.
 compute.tls.usetls                                false                        UseTLS indicates whether to use TLS for client connections.
 datadir                                           v1.5.0/data-dir              DataDir specifies a location on disk where the bacalhau node will maintain
                                                                                state.
 disableanalytics                                  false                        No description available
 engines.disabled                                  []                           Disabled is a list of downloaders that are disabled.
 engines.types.docker.manifestcache.refresh        1h0m0s                       Refresh specifies the refresh interval for cache entries.
 engines.types.docker.manifestcache.size           1000                         Size specifies the size of the Docker manifest cache.
 engines.types.docker.manifestcache.ttl            1h0m0s                       TTL specifies the time-to-live duration for cache entries.
 featureflags.exectranslation                      false                        ExecTranslation enables the execution translation feature.
 inputsources.disabled                             []                           Disabled is a list of downloaders that are disabled.
 inputsources.maxretrycount                        3                            ReadTimeout specifies the maximum number of attempts for reading from a storage.
 inputsources.readtimeout                          5m0s                         ReadTimeout specifies the maximum time allowed for reading from a storage.
 inputsources.types.ipfs.endpoint                                               Endpoint specifies the multi-address to connect to for IPFS. e.g
                                                                                /ip4/127.0.0.1/tcp/5001
 inputsources.types.s3.accesskey                                                AccessKey specifies the access key for the S3 input source.
 inputsources.types.s3.endpoint                                                 Endpoint specifies the multi-address to connect to for IPFS. e.g
                                                                                /ip4/127.0.0.1/tcp/5001
 inputsources.types.s3.secretkey                                                SecretKey specifies the secret key for the S3 input source.
 jobadmissioncontrol.acceptnetworkedjobs           false                        AcceptNetworkedJobs indicates whether to accept jobs that require network
                                                                                access.
 jobadmissioncontrol.probeexec                                                  ProbeExec specifies the command to execute for probing job submission.
 jobadmissioncontrol.probehttp                                                  ProbeHTTP specifies the HTTP endpoint for probing job submission.
 jobadmissioncontrol.rejectstatelessjobs           false                        RejectStatelessJobs indicates whether to reject stateless jobs, i.e. jobs
                                                                                without inputs.
 jobdefaults.batch.priority                        0                            Priority specifies the default priority allocated to a service or daemon job.
                                                                                This value is used when the job hasn't explicitly set its priority requirement.
 jobdefaults.batch.task.publisher.config.params    map[]                        No description available
 jobdefaults.batch.task.publisher.config.type      local                        No description available
 jobdefaults.batch.task.resources.cpu              500m                         CPU specifies the default amount of CPU allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "100m" for 0.1 CPU cores). This value is used when
                                                                                the task hasn't explicitly set its CPU requirement.
 jobdefaults.batch.task.resources.disk                                          Disk specifies the default amount of disk space allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte). This value is
                                                                                used when the task hasn't explicitly set its disk space requirement.
 jobdefaults.batch.task.resources.gpu                                           GPU specifies the default number of GPUs allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "1" for 1 GPU). This value is used when the task
                                                                                hasn't explicitly set its GPU requirement.
 jobdefaults.batch.task.resources.memory           1Gb                          Memory specifies the default amount of memory allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes). This value
                                                                                is used when the task hasn't explicitly set its memory requirement.
 jobdefaults.batch.task.timeouts.executiontimeout  0s                           ExecutionTimeout is the maximum time allowed for task execution
 jobdefaults.batch.task.timeouts.totaltimeout      0s                           TotalTimeout is the maximum total time allowed for a task
 jobdefaults.daemon.priority                       0                            Priority specifies the default priority allocated to a service or daemon job.
                                                                                This value is used when the job hasn't explicitly set its priority requirement.
 jobdefaults.daemon.task.resources.cpu             500m                         CPU specifies the default amount of CPU allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "100m" for 0.1 CPU cores). This value is used when
                                                                                the task hasn't explicitly set its CPU requirement.
 jobdefaults.daemon.task.resources.disk                                         Disk specifies the default amount of disk space allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte). This value is
                                                                                used when the task hasn't explicitly set its disk space requirement.
 jobdefaults.daemon.task.resources.gpu                                          GPU specifies the default number of GPUs allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "1" for 1 GPU). This value is used when the task
                                                                                hasn't explicitly set its GPU requirement.
 jobdefaults.daemon.task.resources.memory          1Gb                          Memory specifies the default amount of memory allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes). This value
                                                                                is used when the task hasn't explicitly set its memory requirement.
 jobdefaults.ops.priority                          0                            Priority specifies the default priority allocated to a service or daemon job.
                                                                                This value is used when the job hasn't explicitly set its priority requirement.
 jobdefaults.ops.task.publisher.config.params      map[]                        No description available
 jobdefaults.ops.task.publisher.config.type        local                        No description available
 jobdefaults.ops.task.resources.cpu                500m                         CPU specifies the default amount of CPU allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "100m" for 0.1 CPU cores). This value is used when
                                                                                the task hasn't explicitly set its CPU requirement.
 jobdefaults.ops.task.resources.disk                                            Disk specifies the default amount of disk space allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte). This value is
                                                                                used when the task hasn't explicitly set its disk space requirement.
 jobdefaults.ops.task.resources.gpu                                             GPU specifies the default number of GPUs allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "1" for 1 GPU). This value is used when the task
                                                                                hasn't explicitly set its GPU requirement.
 jobdefaults.ops.task.resources.memory             1Gb                          Memory specifies the default amount of memory allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes). This value
                                                                                is used when the task hasn't explicitly set its memory requirement.
 jobdefaults.ops.task.timeouts.executiontimeout    0s                           ExecutionTimeout is the maximum time allowed for task execution
 jobdefaults.ops.task.timeouts.totaltimeout        0s                           TotalTimeout is the maximum total time allowed for a task
 jobdefaults.service.priority                      0                            Priority specifies the default priority allocated to a service or daemon job.
                                                                                This value is used when the job hasn't explicitly set its priority requirement.
 jobdefaults.service.task.resources.cpu            500m                         CPU specifies the default amount of CPU allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "100m" for 0.1 CPU cores). This value is used when
                                                                                the task hasn't explicitly set its CPU requirement.
 jobdefaults.service.task.resources.disk                                        Disk specifies the default amount of disk space allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte). This value is
                                                                                used when the task hasn't explicitly set its disk space requirement.
 jobdefaults.service.task.resources.gpu                                         GPU specifies the default number of GPUs allocated to a task. It uses Kubernetes
                                                                                resource string format (e.g., "1" for 1 GPU). This value is used when the task
                                                                                hasn't explicitly set its GPU requirement.
 jobdefaults.service.task.resources.memory         1Gb                          Memory specifies the default amount of memory allocated to a task. It uses
                                                                                Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes). This value
                                                                                is used when the task hasn't explicitly set its memory requirement.
 logging.level                                     info                         Level sets the logging level. One of: trace, debug, info, warn, error, fatal,
                                                                                panic.
 logging.logdebuginfointerval                      0s                           LogDebugInfoInterval specifies the interval for logging debug information.
 logging.mode                                      default                      Mode specifies the logging mode. One of: default, json.
 nameprovider                                      puuid                        NameProvider specifies the method used to generate names for the node. One of:
                                                                                hostname, aws, gcp, uuid, puuid.
 orchestrator.advertise                                                         Advertise specifies the address to advertise to other cluster members.
 orchestrator.authsecret                                                        AuthSecret key specifies the key used by compute nodes to connect to an
                                                                                orchestrator.
 orchestrator.cluster.advertise                                                 Advertise specifies the address to advertise to other cluster members.
 orchestrator.cluster.host                                                      Host specifies the hostname or IP address on which the API server listens or the
                                                                                client connects.
 orchestrator.cluster.name                                                      Name specifies the unique identifier for this orchestrator cluster.
 orchestrator.cluster.peers                        []                           Peers is a list of other cluster members to connect to on startup.
 orchestrator.cluster.port                         0                            Port specifies the port number on which the API server listens or the client
                                                                                connects.
 orchestrator.enabled                              false                        Enabled indicates whether the Web UI is enabled.
 orchestrator.evaluationbroker.maxretrycount       10                           ReadTimeout specifies the maximum number of attempts for reading from a storage.
 orchestrator.evaluationbroker.visibilitytimeout   1m0s                         VisibilityTimeout specifies how long an evaluation can be claimed before it's
                                                                                returned to the queue.
 orchestrator.host                                 0.0.0.0                      Host specifies the hostname or IP address on which the API server listens or the
                                                                                client connects.
 orchestrator.nodemanager.disconnecttimeout        1m0s                         DisconnectTimeout specifies how long to wait before considering a node
                                                                                disconnected.
 orchestrator.nodemanager.manualapproval           false                        ManualApproval, if true, requires manual approval for new compute nodes joining
                                                                                the cluster.
 orchestrator.port                                 4222                         Port specifies the port number on which the API server listens or the client
                                                                                connects.
 orchestrator.scheduler.housekeepinginterval       30s                          HousekeepingInterval specifies how often to run housekeeping tasks.
 orchestrator.scheduler.housekeepingtimeout        2m0s                         HousekeepingTimeout specifies the maximum time allowed for a single housekeeping
                                                                                run.
 orchestrator.scheduler.workercount                12                           WorkerCount specifies the number of concurrent workers for job scheduling.
 orchestrator.tls.autocert                                                      AutoCert specifies the domain for automatic certificate generation.
 orchestrator.tls.autocertcachepath                                             AutoCertCachePath specifies the directory to cache auto-generated certificates.
 orchestrator.tls.cafile                                                        CAFile specifies the path to the Certificate Authority file.
 orchestrator.tls.certfile                                                      CertFile specifies the path to the TLS certificate file.
 orchestrator.tls.insecure                         false                        Insecure allows insecure TLS connections (e.g., self-signed certificates).
 orchestrator.tls.keyfile                                                       KeyFile specifies the path to the TLS private key file.
 orchestrator.tls.selfsigned                       false                        SelfSigned indicates whether to use a self-signed certificate.
 orchestrator.tls.usetls                           false                        UseTLS indicates whether to use TLS for client connections.
 publishers.disabled                               []                           Disabled is a list of downloaders that are disabled.
 publishers.types.ipfs.endpoint                                                 Endpoint specifies the multi-address to connect to for IPFS. e.g
                                                                                /ip4/127.0.0.1/tcp/5001
 publishers.types.local.address                                                 Address specifies the endpoint the publisher serves on.
 publishers.types.local.directory                                               Directory specifies a path to location on disk where content is served from.
 publishers.types.local.port                       0                            Port specifies the port number on which the API server listens or the client
                                                                                connects.
 publishers.types.s3.presignedurldisabled          false                        PreSignedURLDisabled specifies whether pre-signed URLs are enabled for the S3
                                                                                provider.
 publishers.types.s3.presignedurlexpiration        0s                           PreSignedURLExpiration specifies the duration before a pre-signed URL expires.
 resultdownloaders.disabled                        []                           Disabled is a list of downloaders that are disabled.
 resultdownloaders.timeout                         0s                           Timeout specifies the maximum time allowed for a download operation.
 resultdownloaders.types.ipfs.endpoint                                          Endpoint specifies the multi-address to connect to for IPFS. e.g
                                                                                /ip4/127.0.0.1/tcp/5001
 strictversionmatch                                false                        StrictVersionMatch indicates whether to enforce strict version matching.
 updateconfig.interval                             24h0m0s                      Interval specifies the time between update checks, when set to 0 update checks
                                                                                are not performed.
 webui.enabled                                     false                        Enabled indicates whether the Web UI is enabled.
 webui.listen                                      0.0.0.0:8438                 Listen specifies the address and port on which the Web UI listens.
wdbaruni commented 2 months ago

Fixed by better errors https://github.com/bacalhau-project/bacalhau/pull/4536