README
¶
Unikorn Server
Code Generation
Everything is done with an OpenAPI schema.
This allows us to auto-generate the server routing, schema validation middleware, types and clients.
This happens automatically on update via the Makefile
.
Please ensure updated generated code is commited with your pull request.
API Definition
Consult the OpenAPI schema for full details of what it does.
Getting Started with Development and Testing.
Once everything is up and running, grab the IP address:
export INGRESS_ADDR=$(kubectl -n unikorn get ingress/unikorn-server -o 'jsonpath={.status.loadBalancer.ingress[0].ip}')
And add it to your resolver:
echo "${INGRESS_ADDR} unikorn.unikorn-cloud.org" >> /etc/hosts
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct { Namespace string // ListenAddress tells the server what to listen on, you shouldn't // need to change this, its already non-privileged and the default // should be modified to avoid clashes with other services e.g prometheus. ListenAddress string // ReadTimeout defines how long before we give up on the client, // this should be fairly short. ReadTimeout time.Duration // ReadHeaderTimeout defines how long before we give up on the client, // this should be fairly short. ReadHeaderTimeout time.Duration // WriteTimeout defines how long we take to respond before we give up. // Ideally we'd like this to be short, but Openstack in general sucks // for performance. Additionally some calls like cluster creation can // do a cascading create, e.g. create a default control plane, than in // turn creates a project. WriteTimeout time.Duration // RequestTimeout places a hard limit on all requests lengths. RequestTimeout time.Duration }
Options allows server options to be overridden.
type Server ¶
type Server struct { // Options are server specific options e.g. listener address etc. Options Options // ZapOptions configure logging. ZapOptions zap.Options // HandlerOptions sets options for the HTTP handler. HandlerOptions handler.Options // CORSOptions are for remote resource sharing. CORSOptions cors.Options // ClientOptions are for generic TLS client options e.g. certificates. ClientOptions coreclient.HTTPClientOptions // IdentityOptions are for a shared identity client. IdentityOptions *identityclient.Options // RegionOptions are for a shared region client. RegionOptions *regionclient.Options // OTelOptions are for tracing. OTelOptions otel.Options }
func (*Server) SetupLogging ¶
func (s *Server) SetupLogging()
Click to show internal directories.
Click to hide internal directories.