fluid

package module
v0.0.0-...-f559fda Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

README

fluid

Fluid is a Kubernetes resource builder using Go instead of YAML. It is designed to be consumed by CLI tooling that needs to emit valid Kubeernetes YAML or talk directory to the Kube APIs to provision resources, without writing or managing YAML or Helm.

Usage

NewContainer().
  WithName("nginx").
  WithImage("nginx:latest").
  WithLivenessProbe(
    NewHTTPProbe("/healthz").WithPort(8081),
  ).
  WithEnv(
    NewEnvVar("KEY_1").WithValue("val1"),
    NewEnvVar("KEY_2").WithValue("val2"),
    NewEnvVar("KEY_3").WithValueFromSecret("secret-1"),
  ).
  WithPorts(
    NewTCPPort(8080).WithHostPort(80).WithName("http"),
  ).
  WithSecurityContext(
    NewSecurityContext().WithoutPrivilege(),
  ).
  YAML()

Results in:

env:
  - name: KEY_1
    value: val1
  - name: KEY_2
    value: val2
  - name: KEY_3
    valueFrom:
      secretKeyRef:
        key: secret-1
image: nginx:latest
livenessProbe:
  httpGet:
    path: /healthz
    port: 8081
name: nginx
ports:
  - containerPort: 8080
    hostPort: 80
    name: http
    protocol: TCP
resources: {}
securityContext:
  allowPrivilegeEscalation: false
  capabilities:
    drop:
      - ALL
  privileged: false
  runAsNonRoot: true

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContainerBuilder

type ContainerBuilder struct {
	// contains filtered or unexported fields
}

func NewContainer

func NewContainer() *ContainerBuilder

func (*ContainerBuilder) AddPort

func (b *ContainerBuilder) AddPort(containerPort int32) *ContainerBuilder

Ports

func (*ContainerBuilder) AddVolumeMount

func (b *ContainerBuilder) AddVolumeMount(name, mountPath string) *ContainerBuilder

VolumeMounts

func (*ContainerBuilder) Build

func (b *ContainerBuilder) Build() *corev1.Container

func (*ContainerBuilder) WithArgs

func (b *ContainerBuilder) WithArgs(args []string) *ContainerBuilder

WithArgs

func (*ContainerBuilder) WithCommand

func (b *ContainerBuilder) WithCommand(command []string) *ContainerBuilder

WithCommand

func (*ContainerBuilder) WithEnv

func (b *ContainerBuilder) WithEnv(env *EnvBuilder, more ...*EnvBuilder) *ContainerBuilder

func (*ContainerBuilder) WithImage

func (b *ContainerBuilder) WithImage(image string) *ContainerBuilder

WithImage

func (*ContainerBuilder) WithImagePullPolicy

func (b *ContainerBuilder) WithImagePullPolicy(policy corev1.PullPolicy) *ContainerBuilder

WithImagePullPolicy

func (*ContainerBuilder) WithLifecycle

func (b *ContainerBuilder) WithLifecycle(lifecycle *corev1.Lifecycle) *ContainerBuilder

WithLifecycle

func (*ContainerBuilder) WithLivenessProbe

func (b *ContainerBuilder) WithLivenessProbe(handler Probe) *ContainerBuilder

WithLivenessProbe

func (*ContainerBuilder) WithName

func (b *ContainerBuilder) WithName(name string) *ContainerBuilder

WithName

func (*ContainerBuilder) WithPorts

func (*ContainerBuilder) WithReadinessProbe

func (b *ContainerBuilder) WithReadinessProbe(handler corev1.ProbeHandler) *ContainerBuilder

WithReadinessProbe

func (*ContainerBuilder) WithResources

func (b *ContainerBuilder) WithResources(requests, limits corev1.ResourceList) *ContainerBuilder

WithResources

func (*ContainerBuilder) WithSecurityContext

func (b *ContainerBuilder) WithSecurityContext(sc *SecurityContextBuilder) *ContainerBuilder

WithSecurityContext

func (*ContainerBuilder) WithStartupProbe

func (b *ContainerBuilder) WithStartupProbe(handler corev1.ProbeHandler) *ContainerBuilder

WithStartupProbe

func (*ContainerBuilder) WithStdin

func (b *ContainerBuilder) WithStdin() *ContainerBuilder

WithStdin

func (*ContainerBuilder) WithStdinOnce

func (b *ContainerBuilder) WithStdinOnce() *ContainerBuilder

WithStdinOnce

func (*ContainerBuilder) WithTTY

func (b *ContainerBuilder) WithTTY() *ContainerBuilder

WithTTY

func (*ContainerBuilder) WithTerminationMessagePath

func (b *ContainerBuilder) WithTerminationMessagePath(path string) *ContainerBuilder

WithTerminationMessagePath

func (*ContainerBuilder) WithTerminationMessagePolicy

func (b *ContainerBuilder) WithTerminationMessagePolicy(policy corev1.TerminationMessagePolicy) *ContainerBuilder

WithTerminationMessagePolicy

func (*ContainerBuilder) WithWorkingDir

func (b *ContainerBuilder) WithWorkingDir(workingDir string) *ContainerBuilder

WithWorkingDir

func (*ContainerBuilder) WithoutStdin

func (b *ContainerBuilder) WithoutStdin() *ContainerBuilder

WithoutStdin

func (*ContainerBuilder) YAML

func (b *ContainerBuilder) YAML() ([]byte, error)

type ContainerPortBuilder

type ContainerPortBuilder struct {
	*corev1.ContainerPort
}

func NewPort

func NewPort(port int32) *ContainerPortBuilder

func NewTCPPort

func NewTCPPort(port int32) *ContainerPortBuilder

func (*ContainerPortBuilder) UseSCTP

func (*ContainerPortBuilder) UseTCP

func (*ContainerPortBuilder) UseUDP

func (*ContainerPortBuilder) WithHostIP

func (cp *ContainerPortBuilder) WithHostIP(ip string) *ContainerPortBuilder

func (*ContainerPortBuilder) WithHostPort

func (cp *ContainerPortBuilder) WithHostPort(port int32) *ContainerPortBuilder

func (*ContainerPortBuilder) WithName

func (cp *ContainerPortBuilder) WithName(name string) *ContainerPortBuilder

func (*ContainerPortBuilder) WithProtocol

func (cp *ContainerPortBuilder) WithProtocol(protocol corev1.Protocol) *ContainerPortBuilder

type DeploymentBuilder

type DeploymentBuilder struct {
	// contains filtered or unexported fields
}

func NewDeployment

func NewDeployment() *DeploymentBuilder

func (*DeploymentBuilder) Build

func (b *DeploymentBuilder) Build() *appsv1.Deployment

func (*DeploymentBuilder) WithName

func (b *DeploymentBuilder) WithName(n string) *DeploymentBuilder

func (*DeploymentBuilder) WithPodTemplate

func (b *DeploymentBuilder) WithPodTemplate(pod *PodBuilder) *DeploymentBuilder

func (*DeploymentBuilder) YAML

func (b *DeploymentBuilder) YAML() ([]byte, error)

type EnvBuilder

type EnvBuilder struct {
	*corev1.EnvVar
}

func NewEnvVar

func NewEnvVar(name string) *EnvBuilder

func (*EnvBuilder) WithValue

func (ev *EnvBuilder) WithValue(value string) *EnvBuilder

func (*EnvBuilder) WithValueFrom

func (ev *EnvBuilder) WithValueFrom(src corev1.EnvVarSource) *EnvBuilder

func (*EnvBuilder) WithValueFromSecret

func (ev *EnvBuilder) WithValueFromSecret(key string) *EnvBuilder

type EnvVarBuilder

type EnvVarBuilder struct {
	// contains filtered or unexported fields
}

func EnvVar

func EnvVar(name string) *EnvVarBuilder

func (*EnvVarBuilder) ValueFrom

func (b *EnvVarBuilder) ValueFrom(src corev1.EnvVarSource) *EnvVarBuilder

func (*EnvVarBuilder) WithName

func (b *EnvVarBuilder) WithName(name string) *EnvVarBuilder

func (*EnvVarBuilder) WithValue

func (b *EnvVarBuilder) WithValue(v string) *EnvVarBuilder

func (*EnvVarBuilder) WithValueFromSecret

func (b *EnvVarBuilder) WithValueFromSecret(ref string) *EnvVarBuilder

WithValueFromSecret sets the value of the environment variable to the value of the secret key specified by secret key ref.

type HTTPProbeBuilder

type HTTPProbeBuilder struct {
	Probe
	// contains filtered or unexported fields
}

func NewHTTPProbe

func NewHTTPProbe(path string) *HTTPProbeBuilder

func (*HTTPProbeBuilder) Path

func (*HTTPProbeBuilder) WithPort

func (h *HTTPProbeBuilder) WithPort(p int) *HTTPProbeBuilder

type PodBuilder

type PodBuilder struct {
	// contains filtered or unexported fields
}

func NewPod

func NewPod() *PodBuilder

func (*PodBuilder) WithAnnotations

func (b *PodBuilder) WithAnnotations(annotations map[string]string) *PodBuilder

func (*PodBuilder) WithContainer

func (b *PodBuilder) WithContainer(container *ContainerBuilder) *PodBuilder

func (*PodBuilder) WithContainers

func (b *PodBuilder) WithContainers(containers ...*ContainerBuilder) *PodBuilder

func (*PodBuilder) WithLabels

func (b *PodBuilder) WithLabels(labels map[string]string) *PodBuilder

func (*PodBuilder) WithName

func (b *PodBuilder) WithName(name string) *PodBuilder

func (*PodBuilder) WithNamespace

func (b *PodBuilder) WithNamespace(namespace string) *PodBuilder

type Probe

type Probe interface {
	// contains filtered or unexported methods
}

type ProbeBuilder

type ProbeBuilder struct {
	// contains filtered or unexported fields
}

func NewProbe

func NewProbe() *ProbeBuilder

type SecurityContextBuilder

type SecurityContextBuilder struct {
	// contains filtered or unexported fields
}

func NewSecurityContext

func NewSecurityContext() *SecurityContextBuilder

func (*SecurityContextBuilder) Privileged

func (b *SecurityContextBuilder) Privileged(priv bool) *SecurityContextBuilder

func (*SecurityContextBuilder) WithoutPrivilege

func (b *SecurityContextBuilder) WithoutPrivilege() *SecurityContextBuilder

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL