summaryrefslogtreecommitdiffstats
path: root/flags/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #8168 from ↵Håkon Hallingstad2019-01-161-0/+6
|\ | | | | | | | | vespa-engine/hakonhall/support-monitoring-health-of-tenant-hosts Support monitoring health of tenant hosts
| * Support monitoring health of tenant hostsHåkon Hallingstad2019-01-161-0/+6
| |
* | Add node type as dimension for tls feature flagsBjørn Christian Seime2019-01-151-3/+3
| |
* | Add node type dimensionHåkon Hallingstad2019-01-154-5/+16
|/
* Merge pull request #8148 from vespa-engine/freva/fixValerij Fredriksen2019-01-151-1/+2
|\ | | | | Reset container CPU cap fixes
| * Use flags as multiplier of allocated CPUValerij Fredriksen2019-01-151-1/+2
| |
* | Merge pull request #8150 from vespa-engine/bjorncs/vespa-tls-feature-flagsBjørn Christian Seime2019-01-151-0/+13
|\ \ | |/ |/| Introduce feature flags for the "tls-insecure" configuration
| * List allowed values for feature flagsBjørn Christian Seime2019-01-151-2/+2
| |
| * Introduce feature flags for the 'tls-insecure' configurationBjørn Christian Seime2019-01-151-0/+13
| |
* | Allow different drop caches strategiesHåkon Hallingstad2019-01-142-15/+37
|/
* Remove healthmonitor-monitorinfra, dupermodel-contains-infra, ↵Håkon Hallingstad2019-01-141-33/+0
| | | | dupermodel-use-configserverconfig, proxyhost-uses-real-orchestrator, and confighost-uses-real-orchestrator flags
* Code review fixesValerij Fredriksen2019-01-112-3/+11
|
* Define docker container CPU cap feature flagValerij Fredriksen2019-01-111-0/+6
|
* Add basic InMemoryFlagSourceValerij Fredriksen2019-01-111-0/+34
|
* Add DoubleFlagValerij Fredriksen2019-01-114-0/+52
|
* Revert "Revert "Revert "Added logserver feature flag (#8065)"" "Håkon Hallingstad2019-01-111-7/+2
|
* Revert "Revert "Added logserver feature flag (#8065)""Håkon Hallingstad2019-01-111-2/+7
|
* Merge pull request #8097 from vespa-engine/hakonhall/flip-the-right-flagHåkon Hallingstad2019-01-111-2/+2
|\ | | | | flip the right flag
| * flip the right flagHåkon Hallingstad2019-01-111-2/+2
| |
* | Revert "Added logserver feature flag (#8065)"Ola Aunrønning2019-01-101-7/+2
|/ | | | This reverts commit 7a8c964cbc167b617a6c5feb8c62b7585d7e542a.
* Merge pull request #8092 from ↵Håkon Hallingstad2019-01-101-1/+1
|\ | | | | | | | | vespa-engine/hakonhall/dupermodel-config-server-app-from-infrastructureprovisioner-not-configserverconfig DuperModel config server app from InfrastructureProvisioner not ConfigserverConfig
| * DuperModel config server app from InfrastructureProvisioner not ↵Håkon Hallingstad2019-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | ConfigserverConfig The new value "false" has already rolled out via file flags to controllers, which had to be done intra-rollout since the name changed. The config server rollout should be seemless as the name and set of config servers are identical (post BM -> DH cfg migration).
* | Added logserver feature flag (#8065)olaaun2019-01-101-2/+7
| | | | | | | | | | | | | | | | | | | | * Added logserver feature flag * Let FlagSource be non-optional * Get flag value for application * Set default flagSource value where not injected
* | Added feature flag for disabling/enablig CpuTempTaskOla Aunrønning2019-01-101-0/+6
|/
* Merge pull request #8071 from ↵Håkon Hallingstad2019-01-108-5/+252
|\ | | | | | | | | vespa-engine/hakonhall/flag-repository-cfg-client-and-flag-directory Flag repository cfg client and flag directory
| * Store flags locally in one fileHåkon Hallingstad2019-01-096-185/+156
| |
| * Flag repository cfg client and flag directoryHåkon Hallingstad2019-01-096-3/+279
| | | | | | | | | | | | | | | | | | | | | | | | - Makes new FlagRepository config server client to retrieve all flag data. - Makes WireFlagDataList to be used for creating the HTTP response in the config server, and parse the HTTP response in host admin. - Fixes problem with URL generation for controller: when port is not present in the request, remove ":-1" port specification in the url. - Makes a new FlagDirectory class, responsible for reading flags from /opt/vespa/var/vespa/flags (in FlagData JSON format), and reversely, sync that directory to exactly match a set of FlagData. - No longer have 'State state()' as a default method in interface.
* | Make config server and controller hostadmins use real orchestratorHåkon Hallingstad2019-01-081-1/+1
| |
* | Remove docker 1.13 feature flagValerij Fredriksen2019-01-071-6/+0
|/
* Merge pull request #8018 from vespa-engine/hakonhall/export-flagdata-wire-formatValerij Fredriksen2019-01-043-7/+31
|\ | | | | Export FlagData wire format
| * Export FlagData wire formatHåkon Hallingstad2019-01-043-7/+31
| | | | | | | | | | | | | | The FlagData wire format (WireFlagData and friends) is useful with e.g. Jersey JAX-RS client when Jackson is used as a serializer. Therefore, export it. Also, add a bit more sanity-checking on using Flags.Replacer during tests.
* | Add guice and annotationsHåkon Hallingstad2019-01-041-11/+15
|/
* Typed flag classesHåkon Hallingstad2019-01-0320-157/+452
| | | | | | | | | | This reintroduces the non-generic flag classes: - a value() returns the primitive type for flags wrapping a primitive type - easier to use in testing - Serializer is moved to internals of typed class Defines the flag backed by boolean BooleanFlag instead of FeatureFlag since not all boolean flags are necessarily guarding a feature.
* Include flag id in flag data and other review fixesHåkon Hallingstad2019-01-025-12/+31
|
* Expose defined flagsHåkon Hallingstad2018-12-315-5/+47
| | | | | | | | | | - Exposes all defined flags at /flags/v1/defined. - Defines all hosted flags in Flags. Perhaps later we can support hiding hosted flags (aka support different set of flags for different teams). - Categorizes /flags/v1 as a hosted vespa operation for /zone/v2. Also fixes component definitions in services.xml. The affected bundles have been verified at an example config server.
* Configserver flags REST APIHåkon Hallingstad2018-12-3037-362/+1417
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a new ZooKeeper backed flag source. It is defined in a new module configserver-flags to allow as many as possible config server modules to depend on it by minimizing dependencies. The content of the ZK backed flag source can be viewed and modified through REST API on the config server/controller. The data stored per flag looks like { "rules": [ { "conditions": [ { "type": "whitelist", "dimension": "hostname", "values": ["host1"] } ], "value": true } ] } typical for enabling a feature flag on host1. 2 types of conditions are so far supported: whitelist and blacklist. All the conditions must match in order for the value to apply. If the value is null (or absent), the default value will be used. At the time the flag's value is retrieved, it is resolved against the conditions with the current zone, hostname, and/or application. The same data structure is used for FileFlagSource for files in /etc/vespa/flags with the ".2" extension. The FlagSource component injected in the config server is changed to: 1. Return the flag value if specified in /etc/vespa/flags, or otherwise 2. return flag value from ZooKeeper (same as REST API) The current flags (module) is also changed: - All flags must be defined in com.yahoo.vespa.flags.Flags. This allows the ZK backed flag source additional sanity checking when modifying flags. - If it makes sense to have different flag value depending on e.g. the application, then at some point before the value is retrieved, one has to bind the flag to that application (using with() to set up the fetch vector). Future changes would be to 0. make a merged FlagSource in host admin, 1. add support for viewing and modifying feature flags in dashboard, 2. in hv tool.
* Use correct Inject for componentsHåkon Hallingstad2018-11-271-1/+2
|
* Require default value for FeatureFlagHåkon Hallingstad2018-11-262-15/+7
|
* Remove Optional classesHåkon Hallingstad2018-11-267-148/+72
| | | | | | | | | | | After review & new ideas: - All Optional classes have been removed: They must take a default argument to avoid having clients test whether the flag has been set or not, in order to allow local file flag source to undo a file flag setting from config server. - FeatureFlag is now backed by FlagSource::getString, and FlagSource::hasFeature has been removed. - FeatureFlag now allows default-true to facilitate default-enabled features
* Remove change to jacksonClass typeHåkon Hallingstad2018-11-251-1/+1
|
* Replace timeout- with io-exceptionHåkon Hallingstad2018-11-252-4/+3
|
* Add flags moduleHåkon Hallingstad2018-11-2314-0/+625
FileFlagSource reads flags from files in /etc/vespa/flags and is a component that can be injected in host admin, config server, etc. A flag named foo corresponds to filename foo. In general a FlagSource manages: - Feature flags: A feature is either set (true/enabled) or otherwise false. Touching a file foo means the feature flag foo is set (true). - Value flags: Either a String or empty if not set. The String corresponds to the file content. The plan is to make the config server another source of flags. A unified FlagSource can merge the two sources with some priority and used in e.g. parts of node-admin. In other parts one would only have access to the file source. Defines various flag facades: - FeatureFlag: Used to test whether a feature has been enabled or not. - IntFlag - JacksonFlag: Deserializes JSON to Jackson class, or return default if unset. - LongFlag - OptionalJacksonFlag: Deserializes JSON to Jackson class, or empty if unset. - OptionalStringFlag - StringFlag This is part of removing some of the last Chef recipes. Some minor tweaks have been necessary as part of this and are included in this PR (test whether a systemd service exists, task-friendly file deletion, allow capitalized letters in YUM package name).