https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
http4k
  • e

    Eduardo Narros

    10/13/2022, 8:36 AM
    Hi, I am looking at a way to implement an authorisation model within a http4k application. The use case is quite basic, users will have a set of roles, and roles will have a set of permissions. User permissions will then allow/deny users’ access to protected routes. Does anyone know if there is any support in http4k for this kind of use case?
    d
    a
    7 replies · 3 participants
  • p

    Philipp Mayer

    10/14/2022, 10:55 AM
    Hey guys, this might be a question with an obvious answer, but I’m currently quite confused 😂 We have an application that fetches data from an external service and authenticates via OAuth2. No user interactions, just service -> external service. I’m currently transferring the Spring implementation to http4k and just realized how much I have forgotten about OAuth 🌚 Long story short: I guess for the given use case I have to follow this guide?
    d
    12 replies · 2 participants
  • j

    Jippe Holwerda

    10/14/2022, 11:14 AM
    hi all, when uploading a file through a multipart form, we want to keep the temp file around for async virus scanning. However, in the following piece of code, the file is deleted upon JVM exit:
    private fun writeToDisk(part: StreamingPart, bytes: ByteArray, length: Int) =
            File.createTempFile(part.fileName ?: UUID.randomUUID().toString()
            + "-", ".tmp", temporaryFileDirectory).apply {
                deleteOnExit()
                FileOutputStream(this).apply {
                    write(bytes, 0, length)
                    use { part.inputStream.copyTo(it, writeToDiskThreshold) }
                }
            }
    with the
    deleteOnExit()
    call. We want to keep the file around even when the JVM exits (we're running on k8s so pods can always be killed). Would it be a good idea to make this behaviour configurable, i.e. through a flag that is passed from
    MultipartFormBody.from
    to the
    MultipartFormParser
    ? If so, I'll make a merge request... Happy to hear your thoughts.
    3 replies · 1 participant
  • a

    Andrew O'Hara

    10/25/2022, 6:14 PM
    Is anyone seeing constant Undertow server errors in the latest http4k
    4.33.1.0
    version? It doesn't seem to actually break anything, but the volume of error logs are a problem.
    UT005013: An IOException occurred
    java.io.IOException: UT000034: Stream is closed
            at io.undertow.channels.DetachableStreamSourceChannel.getOption(DetachableStreamSourceChannel.java:200)
            at io.undertow.io.UndertowInputStream.<init>(UndertowInputStream.java:71)
            at io.undertow.server.HttpServerExchange$DefaultBlockingHttpExchange.getInputStream(HttpServerExchange.java:2001)
            at io.undertow.server.HttpServerExchange.getInputStream(HttpServerExchange.java:1615)
            at org.http4k.server.Http4kUndertowHttpHandler.asRequest(Http4kUndertowHttpHandler.kt:34)
            at org.http4k.server.Http4kUndertowHttpHandler.handleRequest(Http4kUndertowHttpHandler.kt:37)
            at io.undertow.server.Connectors.executeRootHandler(Connectors.java:391)
            at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
            at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
            at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
            at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
            at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
            at java.base/java.lang.Thread.run(Thread.java:833)
    d
    2 replies · 2 participants
  • d

    dave

    10/27/2022, 8:04 PM
    For anyone who's using the GraalVM native image with http4k, we've just pushed a new set of Docker images which support GraalVM 22.3.0 and Java 11, 17 and 19. The Amazon linux-based Serverless on Lambda runtime has also been updated. You can find all the new images on our dockerhub
  • m

    Mikael Ståldal

    10/28/2022, 9:45 AM
    How am I supposed to create a
    Response
    with JSON from a string? This seems to work:
    Response(Status.OK).header("Content-Type", ContentType.APPLICATION_JSON.value).body("""{"foo":"bar","baz":17}""")
    but is there some nicer way?
    d
    7 replies · 2 participants
  • m

    Mikael Ståldal

    11/03/2022, 1:24 PM
    Is it possible for a server to protect from a malicious client sending humongous requests? And for a client to protect from a malicious server sending humongous responses? I tried to simulate this, and got
    java.lang.OutOfMemoryError
    when using a lens, since it reads the whole payload into memory before parsing it:
    class StreamBody(override val stream: InputStream, override val length: Long? = null) : Body {
        override val payload: ByteBuffer by lazy { stream.use { ByteBuffer.wrap(it.readBytes()) } }
        // ...
    }
    It would be nice to be able to specify a max payload size.
    d
    a
    +1
    30 replies · 4 participants
  • x

    xuemin.guan

    11/07/2022, 7:55 PM
    hi everyone 👋 😀, I’m a completely newbie to gRPC. I have using HTTP4K for a few years now and I love its testability. I have just introduced HTTP4K to the place where I started working recently. gRPC is used extensively at this new place and I will need to make gRPC calls inside my HTTP4K application. I’m wondering what people’s experience are like to use gRPC inside a HTTP4K application? Any tips/advice? I’m thinking to adapt the underlying gRPC request & response to the
    HTTPHandler
    interface which can make testing easier (it is just an idea atm, not sure if this even makes sense). Do people have any other tips? Like what do you use for testing? Anything nice you use for recording and replying requests and responses? Thank you 🙏
    d
    6 replies · 2 participants
  • a

    Andrew O'Hara

    11/08/2022, 4:35 PM
    So, I'm going to be working with protobuf messages for the next while. Is there any technical reason protobuf/avro isn't supported as an
    http4k-format
    module? Or has there just been no interest up until now?
    d
    4 replies · 2 participants
  • e

    Ellen Spertus

    11/13/2022, 9:29 PM
    I have a request that works with curl at the command line:
    curl -A "ellens-user-agent" -X POST -d 'grant_type=password&username=USER&password=PASSWORD' --user 'SCRIPTID:SECRET' <https://www.reddit.com/api/v1/access_token>
    How do I convert that into an
    http4k
    request?
    a
    s
    +1
    13 replies · 4 participants
  • b

    Bear MAN

    11/16/2022, 7:25 AM
    Hello #http4k ! I have a question related to
    http4k-contract
    From http4k's documentation https://www.http4k.org/guide/reference/contracts/, the following example is shown
    // this route has a dynamic path segment
    fun greetRoute(): ContractRoute {
    
        // these lenses define the dynamic parts of the request that will be used in processing
        val ageQuery = <http://Query.int|Query.int>().required("age")
        val stringBody = Body.string(TEXT_PLAIN).toLens()
    
        // this specifies the route contract, with the desired contract of path, headers, queries and body parameters.
        val spec = "/greet" / Path.of("name") meta {
            summary = "tells the user hello!"
            queries += ageQuery
            receiving(stringBody)
        } bindContract GET
    
        // the this function will dynamically supply a new HttpHandler for each call. The number of parameters
        // matches the number of dynamic sections in the path (1)
        fun greet(nameFromPath: String): HttpHandler = { request: Request ->
            val age = ageQuery(request)
            val sentMessage = stringBody(request)
    
            Response(OK).with(stringBody of "hello $nameFromPath you are $age. You sent $sentMessage")
        }
    
        return spec to ::greet
    }
    The above example is fine for path with Path Lens as the last 'path component', however, for path that has string as the last 'path component', I must include a extra parameter for function
    greet
    , e.g.
    // this route has a dynamic path segment
    fun greetRoute(): ContractRoute {
    
        // these lenses define the dynamic parts of the request that will be used in processing
        val ageQuery = <http://Query.int|Query.int>().required("age")
        val stringBody = Body.string(TEXT_PLAIN).toLens()
    
        // this specifies the route contract, with the desired contract of path, headers, queries and body parameters.
        val spec = "/greet" / Path.of("name") / "foo" meta {
            summary = "tells the user hello!"
            queries += ageQuery
            receiving(stringBody)
        } bindContract GET
    
        // the this function will dynamically supply a new HttpHandler for each call. The number of parameters
        // matches the number of dynamic sections in the path (1)
        fun greet(nameFromPath: String, foo: String): HttpHandler = { request: Request ->
            val age = ageQuery(request)
            val sentMessage = stringBody(request)
    
            Response(OK).with(stringBody of "hello $nameFromPath you are $age. You sent $sentMessage")
        }
    
        return spec to ::greet
    }
    foo
    's value is always
    "foo"
    in this case According to Stack Overflow https://stackoverflow.com/questions/53278208/how-do-you-model-a-path-parameter-in-the-middle-with-http4k, it seems that the inclusion of an extra parameter is unavoidable. I also checked http4k internal implementation, and class
    ContractRouteSpec2
    is the reason behind the required
    foo: String
    . I may replace
    greet
    with a lambda and put
    _: String
    instead of
    foo: String
    , but just before I do the refactoring, I wanna make sure it is the intended way to handle this problem. Sorry for the superrrrr long question, and thank you reading it all the way here.
    d
    6 replies · 2 participants
  • m

    Mikael Ståldal

    11/17/2022, 7:20 AM
    How do you configure timeout for http4k client?
    d
    8 replies · 2 participants
  • a

    Andrew O'Hara

    11/21/2022, 6:52 PM
    Is there any way to send a redirect in response to a websocket request?
    d
    5 replies · 2 participants
  • a

    Andrew O'Hara

    11/24/2022, 6:00 PM
    Is there any way to authorize a WebSocket connection? It seems like the
    WsFilter
    only works with a
    Websocket
    that's already open. Is the only alternative to close the
    Websocket
    immediately after failing to validate the authorization?
    d
    5 replies · 2 participants
  • r

    Ryunos

    11/25/2022, 3:38 PM
    Hi, is there a way to encode query params with a specific encoding, for instance UTF-8?
    d
    j
    5 replies · 3 participants
  • b

    Bear MAN

    11/28/2022, 7:48 AM
    Hi, for
    http4k-contract
    , is it possible to generate array of enum query parameter, e.g.
    "schema": {
                  "type": "array",
                  "items":{
                    "type": "string",
                    "enum": ["foo", "soo", "doo", "coo"]
                  }
                }
    a
    d
    5 replies · 3 participants
  • d

    dave

    12/02/2022, 6:41 AM
    Hi everyone! We're excited to tell you that http4k is headed back to KotlinConf in 2023! We'll be presenting Exploring the Testing Hyperpyramid with Kotlin and http4k to showcase a the unreasonable power of the Server as a Function model in your testing stack. We're also looking at options for a way for http4k users to meet at KC for questions or knowledge sharing on your favourite web toolkit. Watch this space! 🎉 See you in Amsterdam! 🎉
    a
    x
    +1
    4 replies · 4 participants
  • b

    Bob Glamm

    12/05/2022, 10:07 PM
    If I want to parse/construct path nodes in routes as I descend the route tree, how do I accomplish that? E.g.
    routes(
      "/projects" bind routes(
        "/{projectId:\\d+}" bind { ... parse projectId here, yielding a RoutingHttpHandler that can access something constructed from the projectId ... }
      )
    )
    This pattern would be nested several more times:
    /project/{projectId}/workspace/{workspaceId}/snippet/{snippetId}
    , for instance
    b
    1 reply · 2 participants
  • d

    dave

    12/09/2022, 5:22 PM
    Hi Everyone. Just a quick note to announce that we have now released a new version of http4k and http4k-connect which support AWS Lambda Snapstart. Also, there was Kotlin meet-up in London yesterday with talks by Andrey Breslav (Kotlin language designer) and myself. The event was live-streamed and you can find the details below. Andrey's talk was especially interesting as it delved into the sources of inspiration for the Kotlin design (and more importantly what features were left out and why! 🙂 ): Details Andrey Breslav (@1h15m) Andrey Breslav led the design and development of the Kotlin Programming Language at JetBrains for 10 years. Andrey will be talking about the languages Kotlin learned from and will have plenty of time for Q and A - so prepare questions you'd like to ask the lead language designer of Kotlin :) David Denton: Smash Your Adapter Monolith With The Connect Pattern (@0h15m) Server-side code is regularly broken down into manageable chunks, based on endpoints. As a result, it tends to be nicely factored. But over several projects, we noticed that the same was not true of adapters that talk to 3rd party systems. These pieces of code tended to grow uncontrolled and were not given the same level of attention. We can use the power of Kotlin and take advantage of language features such as Data Classes, Companion Objects, Operator Overloading and Extension Functions to easily do this - but the pattern concepts themselves are applicable to any technology choice or programming model. You can watch it online here:

    https://youtu.be/JgmzgsNYgXg▾

    h
    j
    10 replies · 3 participants
  • d

    dave

    12/09/2022, 5:25 PM
  • f

    Fernando

    12/15/2022, 12:06 PM
    👋 Hello, team!
  • f

    Fernando

    12/15/2022, 12:22 PM
    I have created a KMP library implementing http4k, but when I install it in a project I get the following message:
    org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/http4k/core/BodyMode$Stream
    , can you help me, please?
  • s

    s4nchez

    12/15/2022, 12:33 PM
    @Fernando http4k doesn’t work in KMP, I’m afraid. It uses some JDK classes that aren’t multi-platform (around streaming and time manipulation)
    f
    2 replies · 2 participants
  • s

    s4nchez

    12/15/2022, 12:34 PM
    We were waiting for possible replacements for those but haven’t checked for a while if they exist now
    d
    9 replies · 2 participants
  • s

    s4nchez

    12/15/2022, 1:45 PM
    For those who've missed, you can take advantage of Lambda Snapstart with http4k.
  • d

    dave

    12/18/2022, 3:32 PM
    Great research and post about http4k on Java advent today. And yes, we are looking at official Loom support. 😉 https://www.javaadvent.com/2022/12/asynchronous-functional-web-server-in-kotlin.html
    f
    6 replies · 2 participants
  • a

    Andrew O'Hara

    01/10/2023, 2:22 AM
    Has anyone had any luck getting Google Sign In (or any implicit login flow) to work in their http4k-contract swagger ui?
    val googleSecurity = ImplicitOAuthSecurity(
        Uri.of("<https://accounts.google.com/o/oauth2/v2/auth>"),
        listOf(OAuthScope("email")),
        Filter.NoOp // todo
    )
    
    val api = contract {
        renderer = OpenApi3(ApiInfo("My Api", "1")) // jackson renderer
        descriptionPath = "/openapi"
        routes += generateRoutes()
        security = googleSecurity
    }
    
    val ui = swaggerUi(
        descriptionRoute = Uri.of("/openapi"),
        displayOperationId = true,
        requestSnippetsEnabled = true
    )
    
    routes(api, ui)
        .asServer(SunHttp(8000))
        .start()
    I can get as far as logging in to google and then being redirected back to
    <app_host>/oauth2-redirect.html
    , but then my app obviously doesn't have this
    /oauth2-redirect.html
    path that the Swagger UI seems to have chosen for me.
    d
    6 replies · 2 participants
  • m

    Mikael Ståldal

    01/13/2023, 10:36 AM
    Status.UNKNOWN_HOST
    and
    Status.CONNECTION_REFUSED
    are equal, is that intentional? Try this:
    fun main() {
        println(Status.SERVICE_UNAVAILABLE == Status.UNKNOWN_HOST)
        println(Status.UNKNOWN_HOST == Status.CONNECTION_REFUSED)
    }
    Gives:
    false
    true
    The reason is that they have the same
    code
    (503) and both are
    clientGenerated
    .
    d
    j
    14 replies · 3 participants
  • d

    dave

    02/04/2023, 6:52 PM
    HI http4kers! Quick update for those of you that are running on Serverless AWS Lambda. As well as the the existing support for the various Lambda runtimes that we already supported (standard AWS (x86 and Graviton), custom http4k-JVM and GraalVM), we've just pushed support for running the http4k-JVM runtime on Graviton2 via the official http4k Docker Images. We've also upgraded the underlying infra so we're on the latest versions of Amazon Linux, Java (11,17,19) and Graal 🙃 This means you can take advantage of the both the better cost savings of Graviton and the http4k runtime to get better performance and lower memory footprint for less 💵 , even if you don't want to go all the way to compiling to native with GraalVM. There's a fully working example in the examples repo which uses Pulumi to setup the infrastructure, or you can go straight to the amd64 docker image repo to see how it works from the command line 🙂
    a
    10 replies · 2 participants
  • a

    Asif Ahmed

    02/10/2023, 5:06 AM
    Does Http4kK8sServer’s start() method wait for the main app to start before starting the health server?
    d
    6 replies · 2 participants
Powered by Linen
Title
a

Asif Ahmed

02/10/2023, 5:06 AM
Does Http4kK8sServer’s start() method wait for the main app to start before starting the health server?
d

dave

02/10/2023, 6:19 AM
No, it doesn't. TBH we've never found this it be a problem as http4k generally starts in milliseconds instead of the seconds which you might see in <insert world's most popular lib here/>, and especially as you can configure K8S with timeouts to for when to start polling for readiness . You can always write your own version if you really need to - it's literally only a couple of lines of code! 🙃 https://github.com/http4k/http4k/blob/master/http4k-cloudnative/src/main/kotlin/org/http4k/cloudnative/Http4kK8sServer.kt
What's the usecase you need it to wait for?
a

Asif Ahmed

02/10/2023, 6:26 AM
Thanks @dave, I was wondering, The health server starts allowing kubernetes to start sending traffic but the appServer is not up yet. That might cause errors.
but in logs mostly i see app server is started first and later health server
d

dave

02/10/2023, 6:28 AM
You can use the readiness checks to determine if a server should be sent traffic by K8s.
a

Asif Ahmed

02/10/2023, 6:43 AM
Yeah , I have simple readiness check in place , but just wanted to confirm
View count: 6