Skip to content

Commit 188964e

Browse files
committed
cicd: drop scylla image for client encryption tests
No need to keep this image, we can build it on fly
1 parent 26c410e commit 188964e

File tree

2 files changed

+171
-53
lines changed

2 files changed

+171
-53
lines changed

.github/workflows/tls.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ jobs:
2020
timeout-minutes: 60
2121
services:
2222
scylladb:
23-
image: scylladb/scylla-tls
23+
image: scylla-tls
24+
build: ./test/tls
2425
ports:
2526
- 9042:9042
2627
- 9142:9142

test/tls/scylla.yaml

Lines changed: 169 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
# The more tokens, relative to other nodes, the larger the proportion of data
2121
# that this node will store. You probably want all nodes to have the same number
2222
# of tokens assuming they have equal hardware capability.
23-
#
24-
# If you already have a cluster with 1 token per node, and wish to migrate to
25-
# multiple tokens per node, see http://cassandra.apache.org/doc/latest/operating
2623
num_tokens: 256
2724

2825
# Directory where Scylla should store all its files, which are commitlog,
@@ -39,6 +36,12 @@ num_tokens: 256
3936
# separate spindle than the data directories.
4037
# commitlog_directory: /var/lib/scylla/commitlog
4138

39+
# schema commit log. A special commitlog instance
40+
# used for schema and system tables.
41+
# When running on magnetic HDD, this should be a
42+
# separate spindle than the data directories.
43+
# schema_commitlog_directory: /var/lib/scylla/commitlog/schema
44+
4245
# commitlog_sync may be either "periodic" or "batch."
4346
#
4447
# When in batch mode, Scylla won't ack writes until the commit log
@@ -68,23 +71,35 @@ commitlog_sync_period_in_ms: 10000
6871
# is reasonable.
6972
commitlog_segment_size_in_mb: 32
7073

74+
# The size of the individual schema commitlog file segments.
75+
#
76+
# The default size is 128, which is 4 times larger than the default
77+
# size of the data commitlog. It's because the segment size puts
78+
# a limit on the mutation size that can be written at once, and some
79+
# schema mutation writes are much larger than average.
80+
schema_commitlog_segment_size_in_mb: 128
81+
7182
# seed_provider class_name is saved for future use.
72-
# seeds address(es) are mandatory!
83+
# A seed address is mandatory.
7384
seed_provider:
74-
# Addresses of hosts that are deemed contact points.
75-
# Scylla nodes use this list of hosts to find each other and learn
76-
# the topology of the ring. You must change this if you are running
77-
# multiple nodes!
85+
# The addresses of hosts that will serve as contact points for the joining node.
86+
# It allows the node to discover the cluster ring topology on startup (when
87+
# joining the cluster).
88+
# Once the node has joined the cluster, the seed list has no function.
7889
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
7990
parameters:
80-
# seeds is actually a comma-delimited list of addresses.
81-
# Ex: "<ip1>,<ip2>,<ip3>"
91+
# In a new cluster, provide the address of the first node.
92+
# In an existing cluster, specify the address of at least one existing node.
93+
# If you specify addresses of more than one node, use a comma to separate them.
94+
# For example: "<IP1>,<IP2>,<IP3>"
8295
- seeds: "127.0.0.1"
8396

84-
# Address or interface to bind to and tell other Scylla nodes to connect to.
97+
# Address to bind to and tell other Scylla nodes to connect to.
8598
# You _must_ change this if you want multiple nodes to be able to communicate!
8699
#
87-
# Setting listen_address to 0.0.0.0 is always wrong.
100+
# If you leave broadcast_address (below) empty, then setting listen_address
101+
# to 0.0.0.0 is wrong as other nodes will not know how to reach this node.
102+
# If you set broadcast_address, then you can set listen_address to 0.0.0.0.
88103
listen_address: localhost
89104

90105
# Address to broadcast to other Scylla nodes
@@ -99,8 +114,8 @@ listen_address: localhost
99114
# listen_on_broadcast_address: false
100115

101116
# port for the CQL native transport to listen for clients on
102-
# For security reasons, you should not expose this port to the internet. Firewall it if needed.
103-
# To disable the CQL native transport, set this option to 0.
117+
# For security reasons, you should not expose this port to the internet. Firewall it if needed.
118+
# To disable the CQL native transport, remove this option and configure native_transport_port_ssl.
104119
native_transport_port: 9042
105120

106121
# Like native_transport_port, but clients are forwarded to specific shards, based on the
@@ -114,11 +129,11 @@ native_shard_aware_transport_port: 19042
114129
# for native_transport_port. Setting native_transport_port_ssl to a different value
115130
# from native_transport_port will use encryption for native_transport_port_ssl while
116131
# keeping native_transport_port unencrypted.
117-
native_transport_port_ssl: 9142
132+
#native_transport_port_ssl: 9142
118133

119134
# Like native_transport_port_ssl, but clients are forwarded to specific shards, based on the
120135
# client-side port numbers.
121-
native_shard_aware_transport_port_ssl: 19142
136+
#native_shard_aware_transport_port_ssl: 19142
122137

123138
# How long the coordinator should wait for read operations to complete
124139
read_request_timeout_in_ms: 5000
@@ -184,8 +199,7 @@ cas_contention_timeout_in_ms: 1000
184199
# of the snitch, which will be assumed to be on your classpath.
185200
endpoint_snitch: SimpleSnitch
186201

187-
# The address or interface to bind the Thrift RPC service and native transport
188-
# server to.
202+
# The address or interface to bind the native transport server to.
189203
#
190204
# Set rpc_address OR rpc_interface, not both. Interfaces must correspond
191205
# to a single address, IP aliasing is not supported.
@@ -206,21 +220,18 @@ rpc_address: localhost
206220
# rpc_interface: eth1
207221
# rpc_interface_prefer_ipv6: false
208222

209-
# port for Thrift to listen for clients on
210-
rpc_port: 9160
211-
212223
# port for REST API server
213224
api_port: 10000
214225

215226
# IP for the REST API server
216227
api_address: 127.0.0.1
217228

218-
# Log WARN on any batch size exceeding this value. 5kb per batch by default.
229+
# Log WARN on any batch size exceeding this value. 128 kiB per batch by default.
219230
# Caution should be taken on increasing the size of this threshold as it can lead to node instability.
220-
batch_size_warn_threshold_in_kb: 5
231+
batch_size_warn_threshold_in_kb: 128
221232

222-
# Fail any multiple-partition batch exceeding this value. 50kb (10x warn threshold) by default.
223-
batch_size_fail_threshold_in_kb: 50
233+
# Fail any multiple-partition batch exceeding this value. 1 MiB (8x warn threshold) by default.
234+
batch_size_fail_threshold_in_kb: 1024
224235

225236
# Authentication backend, identifying users
226237
# Out of the box, Scylla provides org.apache.cassandra.auth.{AllowAllAuthenticator,
@@ -230,6 +241,9 @@ batch_size_fail_threshold_in_kb: 50
230241
# - PasswordAuthenticator relies on username/password pairs to authenticate
231242
# users. It keeps usernames and hashed passwords in system_auth.credentials table.
232243
# Please increase system_auth keyspace replication factor if you use this authenticator.
244+
# - com.scylladb.auth.TransitionalAuthenticator requires username/password pair
245+
# to authenticate in the same manner as PasswordAuthenticator, but improper credentials
246+
# result in being logged in as an anonymous user. Use for upgrading clusters' auth.
233247
# authenticator: AllowAllAuthenticator
234248

235249
# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
@@ -239,11 +253,14 @@ batch_size_fail_threshold_in_kb: 50
239253
# - AllowAllAuthorizer allows any action to any user - set it to disable authorization.
240254
# - CassandraAuthorizer stores permissions in system_auth.permissions table. Please
241255
# increase system_auth keyspace replication factor if you use this authorizer.
256+
# - com.scylladb.auth.TransitionalAuthorizer wraps around the CassandraAuthorizer, using it for
257+
# authorizing permission management. Otherwise, it allows all. Use for upgrading
258+
# clusters' auth.
242259
# authorizer: AllowAllAuthorizer
243260

244261
# initial_token allows you to specify tokens manually. While you can use # it with
245-
# vnodes (num_tokens > 1, above) -- in which case you should provide a
246-
# comma-separated list -- it's primarily used when adding nodes # to legacy clusters
262+
# vnodes (num_tokens > 1, above) -- in which case you should provide a
263+
# comma-separated list -- it's primarily used when adding nodes # to legacy clusters
247264
# that do not have vnodes enabled.
248265
# initial_token:
249266

@@ -255,13 +272,14 @@ batch_size_fail_threshold_in_kb: 50
255272

256273
# Uncomment to enable experimental features
257274
# experimental_features:
258-
# - cdc
259-
# - lwt
260275
# - udf
276+
# - alternator-streams
277+
# - broadcast-tables
278+
# - keyspace-storage-options
261279

262280
# The directory where hints files are stored if hinted handoff is enabled.
263281
# hints_directory: /var/lib/scylla/hints
264-
282+
265283
# The directory where hints files are stored for materialized-view updates
266284
# view_hints_directory: /var/lib/scylla/view_hints
267285

@@ -333,9 +351,6 @@ commitlog_total_space_in_mb: -1
333351
# be rejected as invalid. The default is 256MB.
334352
# native_transport_max_frame_size_in_mb: 256
335353

336-
# Whether to start the thrift rpc server.
337-
# start_rpc: true
338-
339354
# enable or disable keepalive on rpc/native connections
340355
# rpc_keepalive: true
341356

@@ -352,7 +367,7 @@ commitlog_total_space_in_mb: -1
352367
# snapshot_before_compaction: false
353368

354369
# Whether or not a snapshot is taken of the data before keyspace truncation
355-
# or dropping of column families. The STRONGLY advised default of true
370+
# or dropping of column families. The STRONGLY advised default of true
356371
# should be used to provide data safety. If you set this flag to false, you will
357372
# lose data on truncation or drop.
358373
# auto_snapshot: true
@@ -380,6 +395,15 @@ commitlog_total_space_in_mb: -1
380395
# you can cache more hot rows
381396
# column_index_size_in_kb: 64
382397

398+
# Auto-scaling of the promoted index prevents running out of memory
399+
# when the promoted index grows too large (due to partitions with many rows
400+
# vs. too small column_index_size_in_kb). When the serialized representation
401+
# of the promoted index grows by this threshold, the desired block size
402+
# for this partition (initialized to column_index_size_in_kb)
403+
# is doubled, to decrease the sampling resolution by half.
404+
#
405+
# To disable promoted index auto-scaling, set the threshold to 0.
406+
# column_index_auto_scale_threshold_in_kb: 10240
383407

384408
# Log a warning when writing partitions larger than this value
385409
# compaction_large_partition_warning_threshold_mb: 1000
@@ -393,6 +417,9 @@ commitlog_total_space_in_mb: -1
393417
# Log a warning when row number is larger than this value
394418
# compaction_rows_count_warning_threshold: 100000
395419

420+
# Log a warning when writing a collection containing more elements than this value
421+
# compaction_collection_elements_count_warning_threshold: 10000
422+
396423
# How long the coordinator should wait for seq or index scans to complete
397424
# range_request_timeout_in_ms: 10000
398425
# How long the coordinator should wait for writes to complete
@@ -407,39 +434,41 @@ commitlog_total_space_in_mb: -1
407434
# The default timeout for other, miscellaneous operations
408435
# request_timeout_in_ms: 10000
409436

410-
# Enable or disable inter-node encryption.
411-
# You must also generate keys and provide the appropriate key and trust store locations and passwords.
437+
# Enable or disable inter-node encryption.
438+
# You must also generate keys and provide the appropriate key and trust store locations and passwords.
412439
#
413440
# The available internode options are : all, none, dc, rack
414441
# If set to dc scylla will encrypt the traffic between the DCs
415442
# If set to rack scylla will encrypt the traffic between the racks
416443
#
417-
# SSL/TLS algorithm and ciphers used can be controlled by
444+
# SSL/TLS algorithm and ciphers used can be controlled by
418445
# the priority_string parameter. Info on priority string
419446
# syntax and values is available at:
420447
# https://gnutls.org/manual/html_node/Priority-Strings.html
421448
#
422-
# The require_client_auth parameter allows you to
423-
# restrict access to service based on certificate
424-
# validation. Client must provide a certificate
449+
# The require_client_auth parameter allows you to
450+
# restrict access to service based on certificate
451+
# validation. Client must provide a certificate
425452
# accepted by the used trust store to connect.
426-
#
453+
#
427454
# server_encryption_options:
428455
# internode_encryption: none
429456
# certificate: conf/scylla.crt
430457
# keyfile: conf/scylla.key
431-
# truststore: <none, use system trust>
458+
# truststore: <not set, use system trust>
459+
# certficate_revocation_list: <not set>
432460
# require_client_auth: False
433-
# priority_string: <none, use default>
461+
# priority_string: <not set, use default>
434462

435463
# enable or disable client/server encryption.
436-
client_encryption_options:
437-
enabled: true
438-
certificate: /etc/scylla/db.crt
439-
keyfile: /etc/scylla/db.key
440-
# truststore: /etc/scylla/cadb.pem
464+
# client_encryption_options:
465+
# enabled: false
466+
# certificate: conf/scylla.crt
467+
# keyfile: conf/scylla.key
468+
# truststore: <not set, use system trust>
469+
# certficate_revocation_list: <not set>
441470
# require_client_auth: False
442-
# priority_string: <none, use default>
471+
# priority_string: <not set, use default>
443472

444473
# internode_compression controls whether traffic between nodes is
445474
# compressed.
@@ -482,9 +511,13 @@ client_encryption_options:
482511
# prometheus_port: 9180
483512
#
484513
# prometheus address
485-
# By default, Scylla binds all interfaces to the prometheus API
486-
# It is possible to restrict the listening address to a specific one
487-
# prometheus_address: 0.0.0.0
514+
# Leaving this blank will set it to the same value as listen_address.
515+
# This means that by default, Scylla listens to the prometheus API on the same
516+
# listening address (and therefore network interface) used to listen for
517+
# internal communication. If the monitoring node is not in this internal
518+
# network, you can override prometheus_address explicitly - e.g., setting
519+
# it to 0.0.0.0 to listen on all interfaces.
520+
# prometheus_address: 1.2.3.4
488521

489522
# Distribution of data among cores (shards) within a node
490523
#
@@ -505,5 +538,89 @@ client_encryption_options:
505538
#
506539
# Keep at 12 for new clusters.
507540
murmur3_partitioner_ignore_msb_bits: 12
541+
542+
# Use on a new, parallel algorithm for performing aggregate queries.
543+
# Set to `false` to fall-back to the old algorithm.
544+
# enable_parallelized_aggregation: true
545+
546+
# Time for which task manager task is kept in memory after it completes.
547+
# task_ttl_in_seconds: 0
548+
549+
# In materialized views, restrictions are allowed only on the view's primary key columns.
550+
# In old versions Scylla mistakenly allowed IS NOT NULL restrictions on columns which were not part
551+
# of the view's primary key. These invalid restrictions were ignored.
552+
# This option controls the behavior when someone tries to create a view with such invalid IS NOT NULL restrictions.
553+
#
554+
# Can be true, false, or warn.
555+
# * `true`: IS NOT NULL is allowed only on the view's primary key columns,
556+
# trying to use it on other columns will cause an error, as it should.
557+
# * `false`: Scylla accepts IS NOT NULL restrictions on regular columns, but they're silently ignored.
558+
# It's useful for backwards compatibility.
559+
# * `warn`: The same as false, but there's a warning about invalid view restrictions.
560+
#
561+
# To preserve backwards compatibility on old clusters, Scylla's default setting is `warn`.
562+
# New clusters have this option set to `true` by scylla.yaml (which overrides the default `warn`)
563+
# to make sure that trying to create an invalid view causes an error.
564+
strict_is_not_null_in_views: true
565+
566+
# The Unix Domain Socket the node uses for maintenance socket.
567+
# The possible options are:
568+
# * ignore: the node will not open the maintenance socket,
569+
# * workdir: the node will open the maintenance socket on the path <scylla's workdir>/cql.m,
570+
# where <scylla's workdir> is a path defined by the workdir configuration option,
571+
# * <socket path>: the node will open the maintenance socket on the path <socket path>.
572+
maintenance_socket: ignore
573+
574+
# If set to true, configuration parameters defined with LiveUpdate option can be updated in runtime with CQL
575+
# by updating system.config virtual table. If we don't want any configuration parameter to be changed in runtime
576+
# via CQL, this option should be set to false. This parameter doesn't impose any limits on other mechanisms updating
577+
# configuration parameters in runtime, e.g. sending SIGHUP or using API. This option should be set to false
578+
# e.g. for cloud users, for whom scylla's configuration should be changed only by support engineers.
579+
# live_updatable_config_params_changeable_via_cql: true
580+
581+
# ****************
582+
# * GUARDRAILS *
583+
# ****************
584+
585+
# Guardrails to warn or fail when Replication Factor is smaller/greater than the threshold.
586+
# Please note that the value of 0 is always allowed,
587+
# which means that having no replication at all, i.e. RF = 0, is always valid.
588+
# A guardrail value smaller than 0, e.g. -1, means that the guardrail is disabled.
589+
# Commenting out a guardrail also means it is disabled.
590+
# minimum_replication_factor_fail_threshold: -1
591+
# minimum_replication_factor_warn_threshold: 3
592+
# maximum_replication_factor_warn_threshold: -1
593+
# maximum_replication_factor_fail_threshold: -1
594+
595+
# Guardrails to warn about or disallow creating a keyspace with specific replication strategy.
596+
# Each of these 2 settings is a list storing replication strategies considered harmful.
597+
# The replication strategies to choose from are:
598+
# 1) SimpleStrategy,
599+
# 2) NetworkTopologyStrategy,
600+
# 3) LocalStrategy,
601+
# 4) EverywhereStrategy
602+
#
603+
# replication_strategy_warn_list:
604+
# - SimpleStrategy
605+
# replication_strategy_fail_list:
606+
607+
# Enables the tablets feature.
608+
# When enabled, newly created keyspaces will have tablets enabled by default.
609+
# That can be explicitly disabled in the CREATE KEYSPACE query
610+
# by using the `tablets = {'enabled': false}` replication option.
611+
#
612+
# When the tablets feature is disabled, there is no way to enable tablets
613+
# per keyspace.
614+
#
615+
# Note that creating keyspaces with tablets enabled is irreversible.
616+
# Disabling the tablets feature may impact existing keyspaces that were created with tablets.
617+
# For example, the tablets map would remain "frozen" and will not respond to topology changes
618+
# like adding, removing, or replacing nodes, or to replication factor changes.
619+
enable_tablets: true
508620
api_ui_dir: /opt/scylladb/swagger-ui/dist/
509621
api_doc_dir: /opt/scylladb/api/api-doc/
622+
623+
client_encryption_options:
624+
enabled: true
625+
certificate: /etc/scylla/db.crt
626+
keyfile: /etc/scylla/db.key

0 commit comments

Comments
 (0)