* support Minikube
authorWard Vandewege <ward@jhvc.com>
Sun, 26 Apr 2020 19:39:59 +0000 (15:39 -0400)
committerWard Vandewege <ward@jhvc.com>
Tue, 28 Apr 2020 15:41:12 +0000 (11:41 -0400)
* support K8s 1.18
* upgrade to Helm 3
* upgrade to latest Arvados release (2.0.2)
* streamline Helm charts

No issue #

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@jhvc.com>

33 files changed:
charts/arvados/config/api-server/application.yml [deleted file]
charts/arvados/config/api-server/nginx.conf
charts/arvados/config/config.yml [new file with mode: 0644]
charts/arvados/config/crunch-dispatch-slurm/crunch-dispatch-slurm.yml [deleted file]
charts/arvados/config/postgres/create_dbs.sh
charts/arvados/config/sso/application.yml
charts/arvados/config/ws/ws.yml [deleted file]
charts/arvados/minikube-external-ip.sh [new file with mode: 0755]
charts/arvados/templates/api-server-configmap.yaml
charts/arvados/templates/api-server-deployment.yaml
charts/arvados/templates/crunch-dispatch-slurm-configmap.yaml [deleted file]
charts/arvados/templates/crunch-dispatch-slurm-deployment.yaml
charts/arvados/templates/etc-configmap.yaml [moved from charts/arvados/templates/keep-store-configmap.yaml with 76% similarity]
charts/arvados/templates/keep-proxy-configmap.yaml [new file with mode: 0644]
charts/arvados/templates/keep-proxy-deployment.yaml
charts/arvados/templates/keep-proxy-https.yaml [deleted file]
charts/arvados/templates/keep-proxy-service.yaml
charts/arvados/templates/keep-store-deployment.yaml
charts/arvados/templates/keep-web-configmap.yaml [new file with mode: 0644]
charts/arvados/templates/keep-web-deployment.yaml
charts/arvados/templates/keep-web-https.yaml [deleted file]
charts/arvados/templates/keep-web-service.yaml
charts/arvados/templates/postgres-deployment.yaml
charts/arvados/templates/slurm-compute-deployment.yaml
charts/arvados/templates/slurm-controller-deployment.yaml
charts/arvados/templates/slurm-controller-service.yaml
charts/arvados/templates/workbench-deployment.yaml
charts/arvados/templates/ws-configmap.yaml
charts/arvados/templates/ws-deployment.yaml
charts/arvados/templates/ws-https.yaml [deleted file]
charts/arvados/templates/ws-service.yaml
charts/arvados/values.yaml
dockerfiles/Dockerfile.runtime

diff --git a/charts/arvados/config/api-server/application.yml b/charts/arvados/config/api-server/application.yml
deleted file mode 100644 (file)
index 1389fcd..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: AGPL-3.0
-
-# Do not use this file for site configuration. Create application.yml
-# instead (see application.yml.example).
-#
-# The order of precedence is:
-# 1. config/environments/{RAILS_ENV}.rb (deprecated)
-# 2. Section in application.yml corresponding to RAILS_ENV (e.g., development)
-# 3. Section in application.yml called "common"
-# 4. Section in application.default.yml corresponding to RAILS_ENV
-# 5. Section in application.default.yml called "common"
-
-common:
-  ###
-  ### Essential site configuration
-  ###
-
-  # The prefix used for all database identifiers to identify the record as
-  # originating from this site.  Must be exactly 5 alphanumeric characters
-  # (lowercase ASCII letters and digits).
-  uuid_prefix: {{ .Values.uuidPrefix }}
-
-  # secret_token is a string of alphanumeric characters used by Rails
-  # to sign session tokens. IMPORTANT: This is a site secret. It
-  # should be at least 50 characters.
-  secret_token: changeme
-
-  # blob_signing_key is a string of alphanumeric characters used to
-  # generate permission signatures for Keep locators. It must be
-  # identical to the permission key given to Keep. IMPORTANT: This is
-  # a site secret. It should be at least 50 characters.
-  #
-  # Modifying blob_signing_key will invalidate all existing
-  # signatures, which can cause programs to fail (e.g., arv-put,
-  # arv-get, and Crunch jobs).  To avoid errors, rotate keys only when
-  # no such processes are running.
-  blob_signing_key: key
-
-  # These settings are provided by your OAuth2 provider (e.g.,
-  # sso-provider).
-  sso_app_secret: app_secret
-  sso_app_id: arvados-server
-  sso_provider_url: https://{{ .Values.externalIP }}:3002
-
-  # If this is not false, HTML requests at the API server's root URL
-  # are redirected to this location, and it is provided in the text of
-  # user activation notification email messages to remind them where
-  # to log in.
-  workbench_address: false
-
-  # Client-facing URI for websocket service. Nginx should be
-  # configured to proxy this URI to arvados-ws; see
-  # http://doc.arvados.org/install/install-ws.html
-  #
-  # If websocket_address is false (which is the default), no websocket
-  # server will be advertised to clients. This configuration is not
-  # supported.
-  #
-  # Example:
-  #websocket_address: wss://ws.zzzzz.arvadosapi.com/websocket
-  websocket_address: wss://{{ .Values.externalIP }}:9003/websocket
-
-  # Maximum number of websocket connections allowed
-  websocket_max_connections: 500
-
-  # Maximum number of events a single connection can be backlogged
-  websocket_max_notify_backlog: 1000
-
-  # Maximum number of subscriptions a single websocket connection can have
-  # active.
-  websocket_max_filters: 10
-
-  # Git repositories must be readable by api server, or you won't be
-  # able to submit crunch jobs. To pass the test suites, put a clone
-  # of the arvados tree in {git_repositories_dir}/arvados.git or
-  # {git_repositories_dir}/arvados/.git
-  git_repositories_dir: /var/lib/arvados/git/repositories
-
-  # This is a (bare) repository that stores commits used in jobs.  When a job
-  # runs, the source commits are first fetched into this repository, then this
-  # repository is used to deploy to compute nodes.  This should NOT be a
-  # subdirectory of {git_repositiories_dir}.
-  git_internal_dir: /var/lib/arvados/internal.git
-
-  # Default replication level for collections. This is used when a
-  # collection's replication_desired attribute is nil.
-  default_collection_replication: 2
-
-
-  ###
-  ### Overriding default advertised hostnames/URLs
-  ###
-
-  # If not false, this is the hostname that will be used for root_url and
-  # advertised in the discovery document.  By default, use the default Rails
-  # logic for deciding on a hostname.
-  host: false
-
-  # Base part of SSH git clone url given with repository resources. If
-  # true, the default "git@git.(uuid_prefix).arvadosapi.com:" is
-  # used. If false, SSH clone URLs are not advertised. Include a
-  # trailing ":" or "/" if needed: it will not be added automatically.
-  git_repo_ssh_base: true
-
-  # Base part of HTTPS git clone urls given with repository
-  # resources. This is expected to be an arv-git-httpd service which
-  # accepts API tokens as HTTP-auth passwords. If true, the default
-  # "https://git.(uuid_prefix).arvadosapi.com/" is used. If false,
-  # HTTPS clone URLs are not advertised. Include a trailing ":" or "/"
-  # if needed: it will not be added automatically.
-  git_repo_https_base: true
-
-
-  ###
-  ### New user and & email settings
-  ###
-
-  # Config parameters to automatically setup new users.
-  # The params auto_setup_new_users_with_* are meaningful only when auto_setup_new_users is turned on.
-  # auto_setup_name_blacklist is a list of usernames to be blacklisted for auto setup.
-  auto_setup_new_users: true
-  auto_setup_new_users_with_vm_uuid: false
-  auto_setup_new_users_with_repository: false
-  auto_setup_name_blacklist: [arvados, git, gitolite, gitolite-admin, root, syslog]
-
-  # When new_users_are_active is set to true, the user agreement check is skipped.
-  new_users_are_active: true
-
-  # The e-mail address of the user you would like to become marked as an admin
-  # user on their first login.
-  # In the default configuration, authentication happens through the Arvados SSO
-  # server, which uses OAuth2 against Google's servers, so in that case this
-  # should be an address associated with a Google account.
-  auto_admin_user: false
-
-  # If auto_admin_first_user is set to true, the first user to log in when no
-  # other admin users exist will automatically become an admin user.
-  auto_admin_first_user: true
-
-  # Email address to notify whenever a user creates a profile for the
-  # first time
-  user_profile_notification_address: false
-
-  admin_notifier_email_from: arvados@example.com
-  email_subject_prefix: "[ARVADOS] "
-  user_notifier_email_from: arvados@example.com
-  new_user_notification_recipients: [ ]
-  new_inactive_user_notification_recipients: [ ]
-
-
-  ###
-  ### Limits, timeouts and durations
-  ###
-
-  # Lifetime (in seconds) of blob permission signatures generated by
-  # the API server. This determines how long a client can take (after
-  # retrieving a collection record) to retrieve the collection data
-  # from Keep. If the client needs more time than that (assuming the
-  # collection still has the same content and the relevant user/token
-  # still has permission) the client can retrieve the collection again
-  # to get fresh signatures.
-  #
-  # This must be exactly equal to the -blob-signature-ttl flag used by
-  # keepstore servers.  Otherwise, reading data blocks and saving
-  # collections will fail with HTTP 403 permission errors.
-  #
-  # Modifying blob_signature_ttl invalidates existing signatures; see
-  # blob_signing_key note above.
-  #
-  # The default is 2 weeks.
-  blob_signature_ttl: 1209600
-
-  # Default lifetime for ephemeral collections: 2 weeks. This must not
-  # be less than blob_signature_ttl.
-  default_trash_lifetime: 1209600
-
-  # Interval (seconds) between trash sweeps. During a trash sweep,
-  # collections are marked as trash if their trash_at time has
-  # arrived, and deleted if their delete_at time has arrived.
-  trash_sweep_interval: 60
-
-  # Maximum characters of (JSON-encoded) query parameters to include
-  # in each request log entry. When params exceed this size, they will
-  # be JSON-encoded, truncated to this size, and logged as
-  # params_truncated.
-  max_request_log_params_size: 2000
-
-  # Maximum size (in bytes) allowed for a single API request.  This
-  # limit is published in the discovery document for use by clients.
-  # Note: You must separately configure the upstream web server or
-  # proxy to actually enforce the desired maximum request size on the
-  # server side.
-  max_request_size: 134217728
-
-  # Limit the number of bytes read from the database during an index
-  # request (by retrieving and returning fewer rows than would
-  # normally be returned in a single response).
-  # Note 1: This setting never reduces the number of returned rows to
-  # zero, no matter how big the first data row is.
-  # Note 2: Currently, this is only checked against a specific set of
-  # columns that tend to get large (collections.manifest_text,
-  # containers.mounts, workflows.definition). Other fields (e.g.,
-  # "properties" hashes) are not counted against this limit.
-  max_index_database_read: 134217728
-
-  # Maximum number of items to return when responding to a APIs that
-  # can return partial result sets using limit and offset parameters
-  # (e.g., *.index, groups.contents). If a request specifies a "limit"
-  # parameter higher than this value, this value is used instead.
-  max_items_per_response: 1000
-
-  # When you run the db:delete_old_job_logs task, it will find jobs that
-  # have been finished for at least this many seconds, and delete their
-  # stderr logs from the logs table.
-  clean_job_log_rows_after: <%= 30.days %>
-
-  # When you run the db:delete_old_container_logs task, it will find
-  # containers that have been finished for at least this many seconds,
-  # and delete their stdout, stderr, arv-mount, crunch-run, and
-  # crunchstat logs from the logs table.
-  clean_container_log_rows_after: <%= 30.days %>
-
-  # Time to keep audit logs, in seconds. (An audit log is a row added
-  # to the "logs" table in the PostgreSQL database each time an
-  # Arvados object is created, modified, or deleted.)
-  #
-  # Currently, websocket event notifications rely on audit logs, so
-  # this should not be set lower than 600 (5 minutes).
-  max_audit_log_age: 1209600
-
-  # Maximum number of log rows to delete in a single SQL transaction.
-  #
-  # If max_audit_log_delete_batch is 0, log entries will never be
-  # deleted by Arvados. Cleanup can be done by an external process
-  # without affecting any Arvados system processes, as long as very
-  # recent (<5 minutes old) logs are not deleted.
-  #
-  # 100000 is a reasonable batch size for most sites.
-  max_audit_log_delete_batch: 0
-
-  # The maximum number of compute nodes that can be in use simultaneously
-  # If this limit is reduced, any existing nodes with slot number >= new limit
-  # will not be counted against the new limit. In other words, the new limit
-  # won't be strictly enforced until those nodes with higher slot numbers
-  # go down.
-  max_compute_nodes: 64
-
-  # These two settings control how frequently log events are flushed to the
-  # database.  Log lines are buffered until either crunch_log_bytes_per_event
-  # has been reached or crunch_log_seconds_between_events has elapsed since
-  # the last flush.
-  crunch_log_bytes_per_event: 4096
-  crunch_log_seconds_between_events: 1
-
-  # The sample period for throttling logs, in seconds.
-  crunch_log_throttle_period: 60
-
-  # Maximum number of bytes that job can log over crunch_log_throttle_period
-  # before being silenced until the end of the period.
-  crunch_log_throttle_bytes: 65536
-
-  # Maximum number of lines that job can log over crunch_log_throttle_period
-  # before being silenced until the end of the period.
-  crunch_log_throttle_lines: 1024
-
-  # Maximum bytes that may be logged by a single job.  Log bytes that are
-  # silenced by throttling are not counted against this total.
-  crunch_limit_log_bytes_per_job: 67108864
-
-  crunch_log_partial_line_throttle_period: 5
-
-  # Attributes to suppress in events and audit logs.  Notably,
-  # specifying ["manifest_text"] here typically makes the database
-  # smaller and faster.
-  #
-  # Warning: Using any non-empty value here can have undesirable side
-  # effects for any client or component that relies on event logs.
-  # Use at your own risk.
-  unlogged_attributes: []
-
-  # API methods to disable. Disabled methods are not listed in the
-  # discovery document, and respond 404 to all requests.
-  # Example: ["jobs.create", "pipeline_instances.create"]
-  disable_api_methods: []
-
-  ###
-  ### Crunch, DNS & compute node management
-  ###
-
-  # Docker image to be used when none found in runtime_constraints of a job
-  default_docker_image_for_jobs: false
-
-  # List of supported Docker Registry image formats that compute nodes
-  # are able to use. `arv keep docker` will error out if a user tries
-  # to store an image with an unsupported format. Use an empty array
-  # to skip the compatibility check (and display a warning message to
-  # that effect).
-  #
-  # Example for sites running docker < 1.10: ["v1"]
-  # Example for sites running docker >= 1.10: ["v2"]
-  # Example for disabling check: []
-  docker_image_formats: ["v2"]
-
-  # :none or :slurm_immediate
-  crunch_job_wrapper: :slurm_immediate
-
-  # Disable the jobs api, in favor of the container api
-  disable_api_methods: [ jobs.create, pipeline_instances.create, pipeline_templates.create,jobs.get, pipeline_instances.get, pipeline_templates.get, jobs.list, pipeline_instances.list, pipeline_templates.list, jobs.index, pipeline_instances.index, pipeline_templates.index, jobs.update, pipeline_instances.update, pipeline_templates.update, jobs.queue, jobs.queue_size, job_tasks.create, job_tasks.get, job_tasks.list, job_tasks.index, job_tasks.update, jobs.show, pipeline_instances.show, pipeline_templates.show, jobs.show, job_tasks.show ]
-
-  # username, or false = do not set uid when running jobs.
-  crunch_job_user: crunch
-
-  # The web service must be able to create/write this file, and
-  # crunch-job must be able to stat() it.
-  crunch_refresh_trigger: /tmp/crunch_refresh_trigger
-
-  # Path to dns server configuration directory
-  # (e.g. /etc/unbound.d/conf.d). If false, do not write any config
-  # files or touch restart.txt (see below).
-  dns_server_conf_dir: false
-
-  # Template file for the dns server host snippets. See
-  # unbound.template in this directory for an example. If false, do
-  # not write any config files.
-  dns_server_conf_template: false
-
-  # String to write to {dns_server_conf_dir}/restart.txt (with a
-  # trailing newline) after updating local data. If false, do not
-  # open or write the restart.txt file.
-  dns_server_reload_command: false
-
-  # Command to run after each DNS update. Template variables will be
-  # substituted; see the "unbound" example below. If false, do not run
-  # a command.
-  dns_server_update_command: false
-
-  ## Example for unbound:
-  #dns_server_conf_dir: /etc/unbound/conf.d
-  #dns_server_conf_template: /path/to/your/api/server/config/unbound.template
-  ## ...plus one of the following two methods of reloading:
-  #dns_server_reload_command: unbound-control reload
-  #dns_server_update_command: echo %{hostname} %{hostname}.%{uuid_prefix} %{hostname}.%{uuid_prefix}.arvadosapi.com %{ptr_domain} | xargs -n 1 unbound-control local_data_remove && unbound-control local_data %{hostname} IN A %{ip_address} && unbound-control local_data %{hostname}.%{uuid_prefix} IN A %{ip_address} && unbound-control local_data %{hostname}.%{uuid_prefix}.arvadosapi.com IN A %{ip_address} && unbound-control local_data %{ptr_domain}. IN PTR %{hostname}.%{uuid_prefix}.arvadosapi.com
-
-  compute_node_domain: false
-  compute_node_nameservers:
-    - 192.168.1.1
-
-  # Hostname to assign to a compute node when it sends a "ping" and the
-  # hostname in its Node record is nil.
-  # During bootstrapping, the "ping" script is expected to notice the
-  # hostname given in the ping response, and update its unix hostname
-  # accordingly.
-  # If false, leave the hostname alone (this is appropriate if your compute
-  # nodes' hostnames are already assigned by some other mechanism).
-  #
-  # One way or another, the hostnames of your node records should agree
-  # with your DNS records and your /etc/slurm-llnl/slurm.conf files.
-  #
-  # Example for compute0000, compute0001, ....:
-  # assign_node_hostname: compute%<slot_number>04d
-  # (See http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-format for more.)
-  assign_node_hostname: compute%<slot_number>d
-
-
-  ###
-  ### Job and container reuse logic.
-  ###
-
-  # Include details about job reuse decisions in the server log. This
-  # causes additional database queries to run, so it should not be
-  # enabled unless you expect to examine the resulting logs for
-  # troubleshooting purposes.
-  log_reuse_decisions: false
-
-  # Control job reuse behavior when two completed jobs match the
-  # search criteria and have different outputs.
-  #
-  # If true, in case of a conflict, reuse the earliest job (this is
-  # similar to container reuse behavior).
-  #
-  # If false, in case of a conflict, do not reuse any completed job,
-  # but do reuse an already-running job if available (this is the
-  # original job reuse behavior, and is still the default).
-  reuse_job_if_outputs_differ: false
-
-  ###
-  ### Federation support.
-  ###
-
-  # You can enable use of this cluster by users who are authenticated
-  # by a remote Arvados site. Control which remote hosts are trusted
-  # to authenticate which user IDs by configuring remote_hosts,
-  # remote_hosts_via_dns, or both. The default configuration disables
-  # remote authentication.
-
-  # Map known prefixes to hosts. For example, if user IDs beginning
-  # with "zzzzz-" should be authenticated by the Arvados server at
-  # "zzzzz.example.com", use:
-  #
-  # remote_hosts:
-  #   zzzzz: zzzzz.example.com
-  remote_hosts: {}
-
-  # Use {prefix}.arvadosapi.com for any prefix not given in
-  # remote_hosts above.
-  remote_hosts_via_dns: false
-
-  ###
-  ### Remaining assorted configuration options.
-  ###
-
-  arvados_theme: default
-
-  # Permit insecure (OpenSSL::SSL::VERIFY_NONE) connections to the
-  # Single Sign On (sso) server and remote Arvados sites.  Should only
-  # be enabled during development when the SSO server is using a
-  # self-signed cert.
-  sso_insecure: true # TODO: Make this false.
-
-  ## Set Time.zone default to the specified zone and make Active
-  ## Record auto-convert to this zone.  Run "rake -D time" for a list
-  ## of tasks for finding time zone names. Default is UTC.
-  #time_zone: Central Time (US & Canada)
-
-  ## Default encoding used in templates for Ruby 1.9.
-  encoding: utf-8
-
-  # Enable the asset pipeline
-  assets.enabled: true
-
-  # Version of your assets, change this if you want to expire all your assets
-  assets.version: "1.0"
-
-  # Allow clients to create collections by providing a manifest with
-  # unsigned data blob locators. IMPORTANT: This effectively disables
-  # access controls for data stored in Keep: a client who knows a hash
-  # can write a manifest that references the hash, pass it to
-  # collections.create (which will create a permission link), use
-  # collections.get to obtain a signature for that data locator, and
-  # use that signed locator to retrieve the data from Keep. Therefore,
-  # do not turn this on if your users expect to keep data private from
-  # one another!
-  permit_create_collection_with_unsigned_manifest: false
-
-  default_openid_prefix: https://www.google.com/accounts/o8/id
-
-  # Override the automatic version string. With the default value of
-  # false, the version string is read from git-commit.version in
-  # Rails.root (included in vendor packages) or determined by invoking
-  # "git log".
-  source_version: false
-
-  # Enable asynchronous permission graph rebuild.  Must run
-  # script/permission-updater.rb as a separate process.  When the permission
-  # cache is invalidated, the background process will update the permission
-  # graph cache.  This feature is experimental!
-  async_permissions_update: false
-
-  # Default value for container_count_max for container requests.  This is the
-  # number of times Arvados will create a new container to satisfy a container
-  # request.  If a container is cancelled it will retry a new container if
-  # container_count < container_count_max on any container requests associated
-  # with the cancelled container.
-  container_count_max: 3
-
-  # Default value for keep_cache_ram of a container's runtime_constraints.
-  container_default_keep_cache_ram: 268435456
-
-  # Token to be included in all healthcheck requests. Disabled by default.
-  # Server expects request header of the format "Authorization: Bearer xxx"
-  ManagementToken: false
-
-  # URL of keep-web service.  Provides read/write access to collections via
-  # HTTP and WebDAV protocols.
-  #
-  # Example:
-  # keep_web_service_url: https://download.uuid_prefix.arvadosapi.com/
-  keep_web_service_url: false
-
-development:
-  force_ssl: false
-  cache_classes: false
-  whiny_nils: true
-  consider_all_requests_local: true
-  action_controller.perform_caching: false
-  action_mailer.raise_delivery_errors: false
-  action_mailer.perform_deliveries: false
-  active_support.deprecation: :log
-  action_dispatch.best_standards_support: :builtin
-  active_record.auto_explain_threshold_in_seconds: 0.5
-  assets.compress: false
-  assets.debug: true
-
-production:
-  force_ssl: true
-  cache_classes: true
-  consider_all_requests_local: false
-  action_controller.perform_caching: true
-  serve_static_files: false
-  assets.compress: true
-  assets.compile: false
-  assets.digest: true
-
-test:
-  force_ssl: false
-  cache_classes: true
-  serve_static_files: true
-  static_cache_control: public, max-age=3600
-  whiny_nils: true
-  consider_all_requests_local: true
-  action_controller.perform_caching: false
-  action_dispatch.show_exceptions: false
-  action_controller.allow_forgery_protection: false
-  action_mailer.delivery_method: :test
-  active_support.deprecation: :stderr
-  uuid_prefix: zzzzz
-  sso_app_id: arvados-server
-  sso_app_secret: <%= rand(2**512).to_s(36) %>
-  sso_provider_url: http://localhost:3002
-  secret_token: <%= rand(2**512).to_s(36) %>
-  blob_signing_key: zfhgfenhffzltr9dixws36j1yhksjoll2grmku38mi7yxd66h5j4q9w4jzanezacp8s6q0ro3hxakfye02152hncy6zml2ed0uc
-  user_profile_notification_address: arvados@example.com
-  workbench_address: https://localhost:3001/
-  git_repositories_dir: <%= Rails.root.join 'tmp', 'git', 'test' %>
-  git_internal_dir: <%= Rails.root.join 'tmp', 'internal.git' %>
-  websocket_address: "wss://0.0.0.0:<%= ENV['ARVADOS_TEST_WSS_PORT'] %>/websocket"
-  trash_sweep_interval: -1
-  docker_image_formats: ["v2"]
index 69967ad751fec1dc887804987e652f08b47b19cb..5c32ddd08a92e3780358f8d7db3b11e9d57deeeb 100644 (file)
@@ -21,46 +21,3 @@ server {
   # * `max_request_size` in the API server's application.yml file
   client_max_body_size 128m;
 }
-
-upstream api {
-  server     127.0.0.1:8000  fail_timeout=10s;
-}
-
-proxy_http_version 1.1;
-
-# When Keep clients request a list of Keep services from the API server, the
-# server will automatically return the list of available proxies if
-# the request headers include X-External-Client: 1.  Following the example
-# here, at the end of this section, add a line for each netmask that has
-# direct access to Keep storage daemons to set this header value to 0.
-geo $external_client {
-  default     1;
-  10.0.0.0/8  0;
-}
-
-server {
-  listen       0.0.0.0:444 ssl;
-  server_name  public-api;
-
-  ssl on;
-  ssl_certificate     /etc/ssl/certs/api-server.pem;
-  ssl_certificate_key /etc/ssl/private/api-server.key;
-
-  index  index.html index.htm index.php;
-
-  # Refer to the comment about this setting in the server section above.
-  client_max_body_size 128m;
-
-  location / {
-    proxy_pass            http://api;
-    proxy_redirect        off;
-    proxy_connect_timeout 90s;
-    proxy_read_timeout    300s;
-
-    proxy_set_header      X-Forwarded-Proto https;
-    proxy_set_header      Host $http_host;
-    proxy_set_header      X-External-Client $external_client;
-    proxy_set_header      X-Real-IP $remote_addr;
-    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
-  }
-}
diff --git a/charts/arvados/config/config.yml b/charts/arvados/config/config.yml
new file mode 100644 (file)
index 0000000..3401e0a
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+Clusters:
+  {{ .Values.uuidPrefix }}:
+    SystemRootToken: wifieSh9voog8Bae0ahgeG5aechee4Ahloo0Aiw8Aeg4Eiceiy6ku9Eghipha6an
+    API:
+      RailsSessionSecretToken: changeme
+    Workbench:
+      SecretKeyBase: ooTho2Ek8ainiegiong7eiGh2te2roP6aevaigheerizahquee2shahziengoh3y
+    Collections:
+      BlobSigningKey: EiFohx9soofaifo0Fe3mizoo4Aey8ahNiepaik8daiQuohthu9ohH6Kaegu8uDoo
+      TrustAllContent: true
+    TLS:
+      Insecure: true
+    Containers:
+      Logging:
+        LogSecondsBetweenEvents: 1s
+      SLURM:
+        SbatchArgumentsList:
+          - "--workdir=/tmp"
+        Managed:
+          DNSServerConfDir: /tmp
+          DNSServerConfTemplate: /var/www/arvados-api/current/config/unbound.template
+    Login:
+      ProviderAppID: arvados-server
+      ProviderAppSecret: app_secret
+    PostgreSQL:
+      Connection:
+        dbname: arvados_production
+        host: arvados-postgres
+        password: pw
+        user: arvados
+        sslmode: disable
+    Volumes:
+      {{ .Values.uuidPrefix }}-nyw5e-1dz1sonsidjvh68:
+        AccessViaHosts:
+          http://arvados-keep-store-0.arvados-keep-store:25107:
+            ReadOnly: false
+        Driver: Directory
+        DriverParameters:
+          Root: /keepdata
+          Serialize: true
+        ReadOnly: false
+        Replication: 1
+        StorageClasses: null
+      {{ .Values.uuidPrefix }}-nyw5e-a8ft6s4nnwavrlb:
+        AccessViaHosts:
+          http://arvados-keep-store-1.arvados-keep-store:25107:
+            ReadOnly: false
+        Driver: Directory
+        DriverParameters:
+          Root: /keepdata
+          Serialize: true
+        ReadOnly: false
+        Replication: 1
+        StorageClasses: null
+    Services:
+      Controller:
+        ExternalURL: https://{{ .Values.externalIP }}:444
+        InternalURLs:
+          "http://0.0.0.0:9004": {}
+      RailsAPI:
+        ExternalURL: "-"
+        InternalURLs:
+          "http://localhost:8000": {}
+      GitHTTP:
+        ExternalURL: https://git.{{ .Values.uuidPrefix }}.arvadosapi.com/
+      GitSSH:
+        ExternalURL: ssh://git.{{ .Values.uuidPrefix }}.arvadosapi.com
+      Keepproxy:
+        ExternalURL: "https://{{ .Values.externalIP }}:25107"
+        InternalURLs:
+          "http://localhost:25106": {}
+      Keepstore:
+        ExternalURL: '-'
+        InternalURLs:
+          http://arvados-keep-store-0.arvados-keep-store:25107: {}
+          http://arvados-keep-store-1.arvados-keep-store:25107: {}
+      SSO:
+        ExternalURL: https://{{ .Values.externalIP }}:3002
+      WebDAV:
+        ExternalURL: https://{{ .Values.externalIP }}:9002
+        InternalURLs:
+          "http://localhost:29002": {}
+      Websocket:
+        ExternalURL: wss://{{ .Values.externalIP }}:9003/websocket
+        InternalURLs:
+          "http://localhost:29003": {}
+      Workbench1:
+        ExternalURL: https://{{ .Values.externalIP }}
+    TLS:
+      Insecure: true
+    Users:
+      AutoAdminFirstUser: true
+      AutoSetupNewUsers: true
+      NewUsersAreActive: true
diff --git a/charts/arvados/config/crunch-dispatch-slurm/crunch-dispatch-slurm.yml b/charts/arvados/config/crunch-dispatch-slurm/crunch-dispatch-slurm.yml
deleted file mode 100644 (file)
index 754a905..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-Client:
-  APIHost: {{ .Values.externalIP }}:444
-  AuthToken: {{ .Values.superUserSecret }}
-  Insecure: true
-PollPeriod: 5000ms
-MinRetryPeriod: 30s
-SbatchArguments:
-- "--workdir=/tmp"
index 9f3788056128c624da24d9248b9e783bbfd0b36d..d7b419b2ad0147606ae1bafa70063e52b8ea0c29 100644 (file)
@@ -11,8 +11,12 @@ function create_user_and_database() {
   psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
       CREATE USER $user WITH CREATEDB PASSWORD '$password';
       CREATE DATABASE $database OWNER $user;
+EOSQL
+  psql -v ON_ERROR_STOP=1 "$database" --username "$POSTGRES_USER" <<-EOSQL
+      CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
 EOSQL
 }
 
 create_user_and_database arvados_sso_production arvados_sso pw
 create_user_and_database arvados_production arvados pw
+
index 474151de28adf70faaa0bf5236a93acfd6c07ab8..3f92c810569ea7f68c8034e423c44c4bad972497 100644 (file)
@@ -32,7 +32,7 @@ common:
   ###
   # If true, allow new creation of new accounts in the SSO server's internal
   # user database.
-  allow_account_registration: false
+  allow_account_registration: true
 
   # If true, send an email confirmation before activating new accounts in the
   # SSO server's internal user database.
diff --git a/charts/arvados/config/ws/ws.yml b/charts/arvados/config/ws/ws.yml
deleted file mode 100644 (file)
index 7f8e88f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-Client:
-  APIHost: arvados-api-server:444
-  Insecure: true
-Listen: ":9003"
-Postgres:
-  dbname: arvados_production
-  host: arvados-postgres
-  password: pw
-  user: arvados
-  sslmode: disable
diff --git a/charts/arvados/minikube-external-ip.sh b/charts/arvados/minikube-external-ip.sh
new file mode 100755 (executable)
index 0000000..5bdccd9
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+EXTERNAL_IP=$1
+
+if [[ -z "$EXTERNAL_IP" ]]; then
+  EXTERNAL_IP=`minikube ip`
+fi
+
+if [[ -z "$EXTERNAL_IP" ]]; then
+  echo "Syntax: $0 <external_ip>"
+  echo "I tried running `minikube ip` but that failed"
+  exit 1
+fi
+
+kubectl patch service arvados-api-server -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+kubectl patch service arvados-keep-proxy -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+kubectl patch service arvados-keep-web -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+kubectl patch service arvados-sso -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+kubectl patch service arvados-workbench -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+kubectl patch service arvados-ws -p "{\"spec\": {\"type\": \"LoadBalancer\", \"externalIPs\":[\"$EXTERNAL_IP\"]}}"
+
index 3465e1828de75c67349c60ed03fff9463019e36d..2cea6dc37eb778eff682044f3f2f14a58a51a207 100644 (file)
@@ -12,4 +12,57 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 data:
-{{ (tpl (.Files.Glob "config/api-server/*").AsConfig . ) | indent 2 }}
+  {{- (tpl (.Files.Glob "config/api-server/*").AsConfig . ) | nindent 2 }}
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: arvados-api-server-https-configmap
+  labels:
+    app: {{ template "arvados.name" . }}
+    chart: {{ template "arvados.chart" . }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  nginx.conf: |
+    upstream controller {
+      server                127.0.0.1:9004;
+    }
+
+    proxy_http_version 1.1;
+
+    # When Keep clients request a list of Keep services from the API server, the
+    # server will automatically return the list of available proxies if
+    # the request headers include X-External-Client: 1.  Following the example
+    # here, at the end of this section, add a line for each netmask that has
+    # direct access to Keep storage daemons to set this header value to 0.
+    geo $external_client {
+      default     1;
+      10.0.0.0/8  0;
+    }
+
+    server {
+      listen                444 ssl;
+      server_name           public-api;
+
+      ssl_certificate       /etc/nginx/ssl.crt;
+      ssl_certificate_key   /etc/nginx/ssl.key;
+
+      client_max_body_size  128m;
+
+      # Redirect plain HTTP requests to HTTPS.
+      error_page 497 301 =307 https://$host:$server_port$request_uri;
+
+      location / {
+        proxy_pass            http://controller;
+        proxy_connect_timeout 90s;
+        proxy_read_timeout    300s;
+        proxy_redirect        off;
+        proxy_set_header      X-Forwarded-Proto https;
+        proxy_set_header      Host $http_host;
+        proxy_set_header      X-External-Client $external_client;
+        proxy_set_header      X-Real-IP $remote_addr;
+        proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
+      }
+    }
index f3451af54ee02767077696981a8ce1ab23c8141c..7b5bb5ce062378c754d5373d95c719553188b5b8 100644 (file)
@@ -40,25 +40,49 @@ spec:
             - name: api-server-configmap
               mountPath: /etc/arvados/api/database.yml
               subPath: database.yml
-            - name: api-server-configmap
-              mountPath: /etc/arvados/api/application.yml
-              subPath: application.yml
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
             - name: api-server-configmap
               mountPath: /create-workbench-api-client.rb
               subPath: create-workbench-api-client.rb
             - name: api-server-configmap
               mountPath: /etc/nginx/sites-enabled/api-server.conf
               subPath: nginx.conf
+        - name: arvados-controller
+          image: "cure/arvados-runtime"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          command:
+            - "sh"
+            - "-c"
+            - "/usr/local/bin/bootstrap.sh arvados-controller={{ .Values.arvados.versions.distribution.arvadosController }} && arvados-controller"
+          volumeMounts:
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
+        - name: nginx
+          image: "nginx:1.17"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          volumeMounts:
+            - name: nginx-configmap
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: nginx.conf
             - name: ssl-configmap
-              mountPath: /etc/ssl/certs/api-server.pem
+              mountPath: /etc/nginx/ssl.crt
               subPath: cert
             - name: ssl-configmap
-              mountPath: /etc/ssl/private/api-server.key
+              mountPath: /etc/nginx/ssl.key
               subPath: key
       volumes:
         - name: api-server-configmap
           configMap:
             name: arvados-api-server-configmap
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
         - name: ssl-configmap
           configMap:
             name: ssl-configmap
+        - name: nginx-configmap
+          configMap:
+            name: arvados-api-server-https-configmap
diff --git a/charts/arvados/templates/crunch-dispatch-slurm-configmap.yaml b/charts/arvados/templates/crunch-dispatch-slurm-configmap.yaml
deleted file mode 100644 (file)
index 7d98e52..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: crunch-dispatch-slurm-configmap
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-{{ (tpl (.Files.Glob "config/crunch-dispatch-slurm/*").AsConfig . ) | indent 2 }}
index d600459571e0bb9729da3f4f3d0bbe71a157230b..a4f0582a9e1109511fc33812e9652e6029c237c7 100644 (file)
@@ -22,6 +22,9 @@ spec:
         app: arvados-crunch-dispatch-slurm
         release: {{ .Release.Name }}
     spec:
+      dnsConfig:
+        searches:
+          - "arvados-slurm-compute.default.svc.cluster.local"
       containers:
         - name: {{ .Chart.Name }}
           image: "cure/arvados-slurm-runtime"
@@ -38,22 +41,21 @@ spec:
             - name : ARVADOS_API_TOKEN
               value: "{{ .Values.superUserSecret }}"
           volumeMounts:
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
             - name: slurm-configmap
               mountPath: /etc/slurm-llnl/slurm.conf
               subPath: slurm.conf
             - name: slurm-configmap
               mountPath: /etc/munge/munge.key
               subPath: munge.key
-            - name: crunch-dispatch-slurm-configmap
-              mountPath: /etc/arvados/crunch-dispatch-slurm/crunch-dispatch-slurm.yml
-              subPath: crunch-dispatch-slurm.yml
 
       volumes:
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
         - name: slurm-configmap
           configMap:
             name: slurm-configmap
             defaultMode: 0400
-        - name: crunch-dispatch-slurm-configmap
-          configMap:
-            name: crunch-dispatch-slurm-configmap
-
similarity index 76%
rename from charts/arvados/templates/keep-store-configmap.yaml
rename to charts/arvados/templates/etc-configmap.yaml
index c17c01d82709c34bd0d09a64abb1d87a3ad88e16..6a908bd0fd8e15cdc7a366b81c6aa66ece2a0422 100644 (file)
@@ -5,11 +5,11 @@
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: arvados-keep-store-configmap
+  name: etc-configmap
   labels:
     app: {{ template "arvados.name" . }}
     chart: {{ template "arvados.chart" . }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 data:
-  blob-signing.key: key
+  {{- (tpl (.Files.Glob "config/config.yml").AsConfig . ) | nindent 2 }}
diff --git a/charts/arvados/templates/keep-proxy-configmap.yaml b/charts/arvados/templates/keep-proxy-configmap.yaml
new file mode 100644 (file)
index 0000000..dfe0e23
--- /dev/null
@@ -0,0 +1,45 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: arvados-keep-proxy-https-configmap
+  labels:
+    app: {{ template "arvados.name" . }}
+    chart: {{ template "arvados.chart" . }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  nginx.conf: |
+    upstream httpContainer {
+      server                127.0.0.1:25106;
+    }
+
+    server {
+      listen                25107 ssl;
+      server_name           arvados-keep-proxy-https;
+
+      ssl_certificate       /etc/nginx/ssl.crt;
+      ssl_certificate_key   /etc/nginx/ssl.key;
+
+      # Clients need to be able to upload blocks of data up to 64MiB in size.
+      client_body_buffer_size 64M;
+      client_max_body_size  64m;
+
+      # Redirect plain HTTP requests to HTTPS.
+      error_page 497 301 =307 https://$host:$server_port$request_uri;
+
+      location / {
+        proxy_pass            http://httpContainer;
+        proxy_connect_timeout 90s;
+        proxy_read_timeout    300s;
+        proxy_redirect        off;
+        proxy_set_header      X-Forwarded-Proto https;
+        proxy_set_header      Host $host:$server_port;
+        proxy_set_header      X-Real-IP $remote_addr;
+        proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
+      }
+    }
index 263fa4c054e386689c038416611a5658ad72560c..11e473003838e2dafb0a9ffdcd9415c26f4cb3de 100644 (file)
@@ -23,7 +23,7 @@ spec:
         release: {{ .Release.Name }}
     spec:
       containers:
-        - name: arvados-keep-proxy
+        - name: keep-proxy
           image: "cure/arvados-runtime"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           command:
@@ -37,3 +37,30 @@ spec:
               value: "true"
             - name : ARVADOS_API_TOKEN
               value: "{{ .Values.anonymousUserSecret }}"
+          volumeMounts:
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
+        - name: nginx
+          image: "nginx:1.17"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          volumeMounts:
+            - name: nginx-configmap
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: nginx.conf
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.crt
+              subPath: cert
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.key
+              subPath: key
+      volumes:
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
+        - name: ssl-configmap
+          configMap:
+            name: ssl-configmap
+        - name: nginx-configmap
+          configMap:
+            name: arvados-keep-proxy-https-configmap
diff --git a/charts/arvados/templates/keep-proxy-https.yaml b/charts/arvados/templates/keep-proxy-https.yaml
deleted file mode 100644 (file)
index 1d69d92..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: arvados-keep-proxy-https
-  labels:
-    app: arvados-keep-proxy-https
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  selector:
-    matchLabels:
-      app: arvados-keep-proxy-https
-      release: {{ .Release.Name }}
-  template:
-    metadata:
-      labels:
-        app: arvados-keep-proxy-https
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ .Chart.Name }}
-          image: "nginx:1.10"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-          volumeMounts:
-            - name: nginx-configmap
-              mountPath: /etc/nginx/conf.d/default.conf
-              subPath: nginx.conf
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.crt
-              subPath: cert
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.key
-              subPath: key
-      volumes:
-        - name: ssl-configmap
-          configMap:
-            name: ssl-configmap
-        - name: nginx-configmap
-          configMap:
-            name: arvados-keep-proxy-https-configmap
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: arvados-keep-proxy-https-configmap
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-  nginx.conf: |
-    upstream httpContainer {
-      server                arvados-keep-proxy:25107;
-    }
-    
-    server {
-      listen                0.0.0.0:25107 ssl;
-      server_name           arvados-keep-proxy-https;
-    
-      ssl                   on;
-      ssl_certificate       /etc/nginx/ssl.crt;
-      ssl_certificate_key   /etc/nginx/ssl.key;
-    
-      # Clients need to be able to upload blocks of data up to 64MiB in size.
-      client_body_buffer_size 64M;
-      client_max_body_size  64m;
-    
-      # Redirect plain HTTP requests to HTTPS.
-      error_page 497 301 =307 https://$host:$server_port$request_uri;
-    
-      location / {
-        proxy_pass            http://httpContainer;
-        proxy_connect_timeout 90s;
-        proxy_read_timeout    300s;
-        proxy_redirect        off;
-        proxy_set_header      X-Forwarded-Proto https;
-        proxy_set_header      Host $host:$server_port;
-        proxy_set_header      X-Real-IP $remote_addr;
-        proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
-      }
-    }
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: arvados-keep-proxy-https
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: LoadBalancer
-  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
-  ports:
-  - name: https
-    port: 25107
-    targetPort: 25107
-    protocol: TCP
-  selector:
-    app: arvados-keep-proxy-https
index 79e2356931adeab1a24012aa6146be5c842e636c..4a3fcff59cef439e98c154e3ed18f767f1307a7f 100644 (file)
@@ -2,6 +2,7 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
+---
 apiVersion: v1
 kind: Service
 metadata:
@@ -12,8 +13,10 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  type: LoadBalancer
+  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
   ports:
-  - name: http
+  - name: https
     port: 25107
     targetPort: 25107
     protocol: TCP
index 740f9ea8fa77b93def66f6a24f917d636bd23243..128bba966799f31b8e71990fd5b8264f0961c0bb 100644 (file)
@@ -33,12 +33,13 @@ spec:
           command:
             - "sh"
             - "-c"
-            - "mkdir /keepdata && /usr/local/bin/bootstrap.sh keepstore={{ .Values.arvados.versions.distribution.keepStore }} && GOGC=10 keepstore -enforce-permissions=true -blob-signing-key-file=/etc/keepstore/blob-signing.key -max-buffers=100 -serialize=true -never-delete=false -volume=/keepdata"
+            - "mkdir /keepdata && /usr/local/bin/bootstrap.sh keepstore={{ .Values.arvados.versions.distribution.keepStore }} && GOGC=10 keepstore"
           volumeMounts:
-            - name: keep-store-configmap
-              mountPath: /etc/keepstore/blob-signing.key
-              subPath: blob-signing.key
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
       volumes:
-        - name: keep-store-configmap
+        - name: etc-configmap
           configMap:
-            name: arvados-keep-store-configmap
+            name: etc-configmap
+
diff --git a/charts/arvados/templates/keep-web-configmap.yaml b/charts/arvados/templates/keep-web-configmap.yaml
new file mode 100644 (file)
index 0000000..7fe2437
--- /dev/null
@@ -0,0 +1,45 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: arvados-keep-web-https-configmap
+  labels:
+    app: {{ template "arvados.name" . }}
+    chart: {{ template "arvados.chart" . }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  nginx.conf: |
+    upstream httpContainer {
+      server                127.0.0.1:29002;
+    }
+
+    server {
+      listen                9002 ssl;
+      server_name           arvados-keep-web-https;
+
+      proxy_connect_timeout 90s;
+      proxy_read_timeout    300s;
+      proxy_set_header      X-Real-IP $remote_addr;
+
+      ssl_certificate       /etc/nginx/ssl.crt;
+      ssl_certificate_key   /etc/nginx/ssl.key;
+
+      # Clients need to be able to upload blocks of data up to 64MiB in size.
+      client_max_body_size  64m;
+
+      # Redirect plain HTTP requests to HTTPS.
+      error_page 497 301 =307 https://$host:$server_port$request_uri;
+
+      location / {
+        proxy_pass          http://httpContainer;
+        proxy_set_header    Upgrade         $http_upgrade;
+        proxy_set_header    Connection      "upgrade";
+        proxy_set_header    Host            $host:$server_port;
+        proxy_set_header    X-Forwarded-For $remote_addr;
+      }
+    }
index 1f2eb050d1139fa93141f00abbadf5d87f0e9f53..6dd1cf9bb54209dbbcefaef036030d330bd69854 100644 (file)
@@ -29,7 +29,7 @@ spec:
           command:
             - "sh"
             - "-c"
-            - "/usr/local/bin/bootstrap.sh keep-web={{ .Values.arvados.versions.distribution.keepWeb }} && keep-web -listen=:9002 -trust-all-content"
+            - "/usr/local/bin/bootstrap.sh mime-support keep-web={{ .Values.arvados.versions.distribution.keepWeb }} && keep-web"
           env:
             - name : ARVADOS_API_HOST
               value: "{{ .Values.externalIP }}:444"
@@ -37,3 +37,30 @@ spec:
               value: "true"
             - name : ARVADOS_API_TOKEN
               value: "{{ .Values.anonymousUserSecret }}"
+          volumeMounts:
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
+        - name: arvados-keep-web-https
+          image: "nginx:1.17"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          volumeMounts:
+            - name: nginx-configmap
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: nginx.conf
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.crt
+              subPath: cert
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.key
+              subPath: key
+      volumes:
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
+        - name: ssl-configmap
+          configMap:
+            name: ssl-configmap
+        - name: nginx-configmap
+          configMap:
+            name: arvados-keep-web-https-configmap
diff --git a/charts/arvados/templates/keep-web-https.yaml b/charts/arvados/templates/keep-web-https.yaml
deleted file mode 100644 (file)
index d237344..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: arvados-keep-web-https
-  labels:
-    app: arvados-keep-web-https
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  selector:
-    matchLabels:
-      app: arvados-keep-web-https
-      release: {{ .Release.Name }}
-  template:
-    metadata:
-      labels:
-        app: arvados-keep-web-https
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ .Chart.Name }}
-          image: "nginx:1.10"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-          volumeMounts:
-            - name: nginx-configmap
-              mountPath: /etc/nginx/conf.d/default.conf
-              subPath: nginx.conf
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.crt
-              subPath: cert
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.key
-              subPath: key
-      volumes:
-        - name: ssl-configmap
-          configMap:
-            name: ssl-configmap
-        - name: nginx-configmap
-          configMap:
-            name: arvados-keep-web-https-configmap
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: arvados-keep-web-https-configmap
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-  nginx.conf: |
-    upstream httpContainer {
-      server                arvados-keep-web:9002;
-    }
-    
-    server {
-      listen                0.0.0.0:9002 ssl;
-      server_name           arvados-keep-web-https;
-    
-      proxy_connect_timeout 90s;
-      proxy_read_timeout    300s;
-      proxy_set_header      X-Real-IP $remote_addr;
-    
-      ssl                   on;
-      ssl_certificate       /etc/nginx/ssl.crt;
-      ssl_certificate_key   /etc/nginx/ssl.key;
-    
-      # Clients need to be able to upload blocks of data up to 64MiB in size.
-      client_max_body_size  64m;
-    
-      # Redirect plain HTTP requests to HTTPS.
-      error_page 497 301 =307 https://$host:$server_port$request_uri;
-    
-      location / {
-        proxy_pass          http://httpContainer;
-        proxy_set_header    Upgrade         $http_upgrade;
-        proxy_set_header    Connection      "upgrade";
-        proxy_set_header    Host            $host:$server_port;
-        proxy_set_header    X-Forwarded-For $remote_addr;
-      }
-    }
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: arvados-keep-web-https
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: LoadBalancer
-  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
-  ports:
-  - name: https
-    port: 9002
-    targetPort: 9002
-    protocol: TCP
-  selector:
-    app: arvados-keep-web-https
index 2d4f964b6773471ce39290e0fecb3548002f3e43..6789e9ba54619b7d8913c98571bccbdd38d594e8 100644 (file)
@@ -2,6 +2,7 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
+---
 apiVersion: v1
 kind: Service
 metadata:
@@ -12,8 +13,10 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  type: LoadBalancer
+  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
   ports:
-  - name: http
+  - name: https
     port: 9002
     targetPort: 9002
     protocol: TCP
index 183137253086765db8d84a4509a234d4b2ff74a9..786edc367092453e228266a9625e11b5af805d82 100644 (file)
@@ -26,6 +26,9 @@ spec:
         - name: {{ .Chart.Name }}
           image: "postgres:9.5"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
+          env:
+          - name: POSTGRES_HOST_AUTH_METHOD
+            value: "trust"
           volumeMounts:
             - name: postgres-configmap
               mountPath: /docker-entrypoint-initdb.d/create_dbs.sh
index b81e8f65f4dfa592724e625ea0789b3bbab3a01d..2919b62e8e7c9966257b3e97f2a27582f6b2b346 100644 (file)
@@ -25,6 +25,9 @@ spec:
         app: arvados-slurm-compute
         release: {{ .Release.Name }}
     spec:
+      dnsConfig:
+        searches:
+          - "arvados-slurm-compute.default.svc.cluster.local"
       terminationGracePeriodSeconds: 1
       containers:
         - name: {{ .Chart.Name }}
@@ -60,10 +63,3 @@ spec:
             defaultMode: 0400
         - name: docker-graph-storage
           emptyDir: {}
-
-#            - "/usr/local/bin/bootstrap.sh crunch-dispatch-slurm={{ .Values.arvados.versions.distribution.crunchDispatchSlurm }} && chown munge /etc/munge/munge.key && chmod 0400 /etc/munge/munge.key && sudo -u munge munged && slurmctld -D && crunch-dispatch-slurm"
-#            - "/usr/local/bin/bootstrap.sh crunch-dispatch-slurm={{ .Values.arvados.versions.distribution.crunchDispatchSlurm }} && sudo -u munge munged && slurmctld -D && crunch-dispatch-slurm"
-#            - "/usr/local/bin/bootstrap.sh crunch-dispatch-slurm={{ .Values.arvados.versions.distribution.crunchDispatchSlurm }} && crunch-dispatch-slurm"
-
-# for slurm client, compute node
-#            - "/usr/local/bin/bootstrap.sh python-arvados-python-client={{ .Values.arvados.versions.distribution.pythonArvadosPythonClient }} crunch-run={{ .Values.arvados.versions.distribution.crunchRun }} python-arvados-fuse={{ .Values.arvados.versions.distribution.pythonArvadosFuse }} && chown munge /etc/munge/munge.key; chmod 0400 /etc/munge/munge.key; sudo -u munge munged && slurmd -D"
index 145b9d738f205e91c7fc335e86c7aec064cb94e0..b793c893d4ab3526a0a99011ae955cfd4b5a4ba0 100644 (file)
@@ -56,4 +56,3 @@ spec:
           configMap:
             name: slurm-configmap
             defaultMode: 0400
-
index 955a508880aa398d03aa8f9dd07dd9cf1710e176..d4d09aa83a0e4b8a48c6f5e9201d7371436a07e1 100644 (file)
@@ -16,4 +16,4 @@ spec:
   - port: 6817
     protocol: TCP
   selector:
-    app: arvados-slurm-controller
+    app: arvados-slurm-controller-0
index 7e50ddbb9be46bcdc30dafecc0c1571d86c20b85..f9e2c3fc5c032a2bda8647c022452136b6f23ee1 100644 (file)
@@ -34,6 +34,9 @@ spec:
             - name: RAILS_ENV
               value: "production"
           volumeMounts:
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
             - name: workbench-configmap
               mountPath: /etc/arvados/workbench/application.yml
               subPath: application.yml
@@ -47,6 +50,9 @@ spec:
               mountPath: /etc/ssl/private/workbench.key
               subPath: key
       volumes:
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
         - name: workbench-configmap
           configMap:
             name: arvados-workbench-configmap
index 0a1cc34a86b171898bdb409d29bb5a2e01ce5742..a9c4aa1d93bcd93139ce3b33d80935d98994d5cf 100644 (file)
@@ -12,4 +12,45 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 data:
-{{ (.Files.Glob "config/ws/*").AsConfig | indent 2 }}
+  {{- (tpl (.Files.Glob "config/ws/*").AsConfig . ) | nindent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: arvados-ws-https-configmap
+  labels:
+    app: {{ template "arvados.name" . }}
+    chart: {{ template "arvados.chart" . }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  nginx.conf: |
+    upstream httpContainer {
+      server                127.0.0.1:29003;
+    }
+
+    server {
+      listen                9003 ssl;
+      server_name           arvados-ws-https;
+
+      proxy_connect_timeout 90s;
+      proxy_read_timeout    300s;
+      proxy_set_header      X-Real-IP $remote_addr;
+
+      ssl_certificate       /etc/nginx/ssl.crt;
+      ssl_certificate_key   /etc/nginx/ssl.key;
+
+      # Clients need to be able to upload blocks of data up to 64MiB in size.
+      client_max_body_size  64m;
+
+      # Redirect plain HTTP requests to HTTPS.
+      error_page 497 301 =307 https://$host:$server_port$request_uri;
+
+      location / {
+        proxy_pass          http://httpContainer;
+        proxy_set_header    Upgrade         $http_upgrade;
+        proxy_set_header    Connection      "upgrade";
+        proxy_set_header    Host            $host:$server_port;
+        proxy_set_header    X-Forwarded-For $remote_addr;
+      }
+    }
index 6a916e5de1900de9898a0d2e06b7f1ac301eed4b..8f700b659caa56d5c062a786dfa8bdaf45a70987 100644 (file)
@@ -31,10 +31,29 @@ spec:
             - "-c"
             - "/usr/local/bin/bootstrap.sh arvados-ws={{ .Values.arvados.versions.distribution.arvadosWs }} && arvados-ws"
           volumeMounts:
-            - name: ws-configmap
-              mountPath: /etc/arvados/ws/ws.yml
-              subPath: ws.yml
+            - name: etc-configmap
+              mountPath: /etc/arvados/config.yml
+              subPath: config.yml
+        - name: arvados-ws-https
+          image: "nginx:1.17"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          volumeMounts:
+            - name: nginx-configmap
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: nginx.conf
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.crt
+              subPath: cert
+            - name: ssl-configmap
+              mountPath: /etc/nginx/ssl.key
+              subPath: key
       volumes:
-        - name: ws-configmap
+        - name: etc-configmap
+          configMap:
+            name: etc-configmap
+        - name: ssl-configmap
+          configMap:
+            name: ssl-configmap
+        - name: nginx-configmap
           configMap:
-            name: arvados-ws-configmap
+            name: arvados-ws-https-configmap
diff --git a/charts/arvados/templates/ws-https.yaml b/charts/arvados/templates/ws-https.yaml
deleted file mode 100644 (file)
index 74becb9..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: arvados-ws-https
-  labels:
-    app: arvados-ws-https
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  selector:
-    matchLabels:
-      app: arvados-ws-https
-      release: {{ .Release.Name }}
-  template:
-    metadata:
-      labels:
-        app: arvados-ws-https
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-        - name: {{ .Chart.Name }}
-          image: "nginx:1.10"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-          volumeMounts:
-            - name: nginx-configmap
-              mountPath: /etc/nginx/conf.d/default.conf
-              subPath: nginx.conf
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.crt
-              subPath: cert
-            - name: ssl-configmap
-              mountPath: /etc/nginx/ssl.key
-              subPath: key
-      volumes:
-        - name: ssl-configmap
-          configMap:
-            name: ssl-configmap
-        - name: nginx-configmap
-          configMap:
-            name: arvados-ws-https-configmap
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: arvados-ws-https-configmap
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-data:
-  nginx.conf: |
-    upstream httpContainer {
-      server                arvados-ws:9003;
-    }
-    
-    server {
-      listen                0.0.0.0:9003 ssl;
-      server_name           arvados-ws-https;
-    
-      proxy_connect_timeout 90s;
-      proxy_read_timeout    300s;
-      proxy_set_header      X-Real-IP $remote_addr;
-    
-      ssl                   on;
-      ssl_certificate       /etc/nginx/ssl.crt;
-      ssl_certificate_key   /etc/nginx/ssl.key;
-    
-      # Clients need to be able to upload blocks of data up to 64MiB in size.
-      client_max_body_size  64m;
-    
-      # Redirect plain HTTP requests to HTTPS.
-      error_page 497 301 =307 https://$host:$server_port$request_uri;
-    
-      location / {
-        proxy_pass          http://httpContainer;
-        proxy_set_header    Upgrade         $http_upgrade;
-        proxy_set_header    Connection      "upgrade";
-        proxy_set_header    Host            $host:$server_port;
-        proxy_set_header    X-Forwarded-For $remote_addr;
-      }
-    }
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: arvados-ws-https
-  labels:
-    app: {{ template "arvados.name" . }}
-    chart: {{ template "arvados.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: LoadBalancer
-  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
-  ports:
-  - name: https
-    port: 9003
-    targetPort: 9003
-    protocol: TCP
-  selector:
-    app: arvados-ws-https
index 0930ffbba9927b8e5de43bfa634de9b8f16a1a63..8dcf9d2cc27039cfab86c3d34a001a4e31c33f5d 100644 (file)
@@ -2,6 +2,7 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
+---
 apiVersion: v1
 kind: Service
 metadata:
@@ -12,8 +13,10 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  type: LoadBalancer
+  loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }}
   ports:
-  - name: http
+  - name: https
     port: 9003
     targetPort: 9003
     protocol: TCP
index fed5682ff2b5ad47b9f49b963468fc9d7875a962..facdcd5609cc58cd4e3602ce6b77d6faeb114ee8 100644 (file)
@@ -36,23 +36,24 @@ uuidPrefix: vwxyz
 arvados:
   versions:
     distribution:
-      arvadosApiServer: 1.3.1-1
-      arvadosGitHttpd: 1.3.1-1
-      arvadosHealth: 1.3.1-1
-      arvadosWorkbench: 1.3.1-1
-      arvadosWs: 1.3.1-1
+      arvadosApiServer: 2.0.2-1
+      arvadosController: 2.0.2-1
+      arvadosGitHttpd: 2.0.2-1
+      arvadosHealth: 2.0.2-1
+      arvadosWorkbench: 2.0.2-1
+      arvadosWs: 2.0.2-1
       arvadosSSOServer: 1.1.4-1
-      crunchDispatchSlurm: 1.3.1-1
-      crunchRun: 1.3.1-1
-      crunchRunner: 1.3.1-1
-      keepBalance: 1.3.1-1
-      keepStore: 1.3.1-1
-      keepWeb: 1.3.1-1
-      keepProxy: 1.3.1-1
-      libPamArvados: 1.3.1-1
-      pythonArvadosFuse: 1.3.1-1
-      pythonArvadosPythonClient: 1.3.1-1
+      crunchDispatchSlurm: 2.0.2-1
+      crunchRun: 2.0.2-1
+      crunchRunner: 2.0.2-1
+      keepBalance: 2.0.2-1
+      keepStore: 2.0.2-1
+      keepWeb: 2.0.2-1
+      keepProxy: 2.1.0.dev20200422013447-1
+      libPamArvados: 2.0.2-1
+      pythonArvadosFuse: 2.0.2-1
+      pythonArvadosPythonClient: 2.0.2-1
     gem:
-      arvados: 1.3.1.20190122164002
-      arvadosCLI: 1.3.1.20190211211047
-      arvadosLoginSync: 1.3.1.20190211211047
+      arvados: 2.0.2
+      arvadosCLI: 2.0.2
+      arvadosLoginSync: 2.0.2
index d79c330713bda7341989ed24f85e3505e7cc830f..a415d159529343e0c88ae3b7dac8bbaa50362f86 100644 (file)
@@ -7,6 +7,7 @@ FROM ubuntu:18.04
 RUN apt-get update && apt-get install -y gnupg2 ca-certificates
 
 RUN echo "deb http://apt.arvados.org/ bionic main" > /etc/apt/sources.list.d/apt.arvados.org.list
+RUN echo "deb http://apt.arvados.org/ bionic-dev main" >> /etc/apt/sources.list.d/apt.arvados.org.list
 
 ADD 1078ECD7.asc /tmp/
 RUN cat /tmp/1078ECD7.asc | apt-key add -