Skip to main content

ArgoKit v2 API

Denne referansen er organisert etter hvor API-et brukes:

OmrådeImportstiBrukes til
Applicationargokit.appAndObjects.applicationSkiperator Application-ressurser
SKIPJobargokit.appAndObjects.skipjobSkiperator SKIPJob-ressurser
Felles workload-hjelpereargokit.appAndObjects.<workload>hjelpere som finnes på både application og skipjob
Frittstående ressurserargokit.k8s.*, argokit.routing, argokit.externalSecrets.*, argokit.azureAdApplicationRessurser som rendres utenfor en appAndObjects-workload

I seksjoner for felles hjelpere betyr <workload> enten application eller skipjob.

Constructors

argokit.appAndObjects.application.new()

Oppretter en Skiperator Application ved å bruke appAndObjects-konvensjonen.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på applikasjonen
imagestringtrue-container-image
portnumbertrue-hovedport for containeren

Eksempel: examples/application.jsonnet

argokit.appAndObjects.skipjob.new()

Oppretter en Skiperator SKIPJob med API-versjon skiperator.kartverket.no/v1beta1.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på jobben
imagestringtrue-container-image

Eksempel: examples/skipjob.jsonnet

SKIPJob-hjelpere

argokit.appAndObjects.skipjob.withCron()

Gjør SKIPJob periodisk ved å sette spec.cron. Se Kubernetes cron-syntaks her.

navntypeobligatoriskstandardverdibeskrivelse
schedulestringtrue-cron-uttrykk
allowConcurrencystringfalse-Allow, Forbid eller Replace
startingDeadlineSecondsnumberfalse-frist i sekunder for å starte en forsinket jobb
suspendbooleanfalse-suspenderer cronjobben
timeZonestringfalseEurope/OsloIANA-tidssone, f.eks. Etc/UTC

argokit.appAndObjects.skipjob.withSettings()

Setter Kubernetes Job-innstillinger under spec.job.

navntypeobligatoriskstandardverdibeskrivelse
activeDeadlineSecondsnumberfalse-maks kjøretid i sekunder
backoffLimitnumberfalse-antall retry-forsøk før jobben regnes som feilet
suspendbooleanfalse-suspenderer jobben
ttlSecondsAfterFinishednumberfalse-sekunder før ferdig jobb ryddes opp

argokit.appAndObjects.skipjob.withRestartPolicy()

Setter restart policy for jobben.

navntypeobligatoriskstandardverdibeskrivelse
restartPolicystringtrue-OnFailure eller Never

Application-hjelpere

argokit.appAndObjects.application.withReplicas()

Setter replikaer for en Application, eventuelt med autoskalering.

navntypeobligatoriskstandardverdibeskrivelse
initialnumbertrue2initialt antall replikaer
maxnumberfalse-maksimalt antall replikaer. Aktiverer autoskalering når den er satt og ulik initial
targetCpuUtilizationnumberfalse-CPU-terskel i prosent
targetMemoryUtilizationnumberfalse-minne-terskel i prosent

Eksempel: examples/replicas.jsonnet

argokit.appAndObjects.application.forHostnames()

Oppretter ingress-oppføringer for en Application.

navntypeobligatoriskstandardverdibeskrivelse
ingressarray, string eller objecttrue-hostname som string, liste med hostnames/objekter, eller { hostname, customCert }

Eksempel: examples/ingress.jsonnet

argokit.appAndObjects.application.withAzureAdApplication()

Legger til en AzureADApplication-ressurs og konfigurerer applikasjonen til å bruke den.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på AzureADApplication-ressursen
namespacestringfalse-namespace for ressursen
groupsarrayfalse[]Azure AD-grupper for claims
secretPrefixstringfalseazureadprefix for secret-navnet
allowAllUsersbooleanfalsefalseom alle brukere skal få tilgang
logoutUrlstringfalse-logout-URL
replyUrlsarrayfalse[]reply URLs
preAuthorizedApplicationsarrayfalse[]forhåndsautoriserte applikasjoner

Eksempel: examples/withAzureAdApplication.jsonnet

argokit.appAndObjects.application.withExtraContainer()

Legger til en ekstra container i podden for en Application.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-container-navn
imagestringtrue-container-image
typestringfalsestandardstandard for vanlig sidecar, eller init for native sidecar init-container
commandarrayfalse-overstyrer container command
argsarrayfalse-argumenter til entrypoint
envarrayfalse-miljøvariabler for containeren
envFromarrayfalse-miljøvariabler fra Secret eller ConfigMap
filesFromarrayfalse-filmounts for containeren
additionalPortsarrayfalse[]porter eksponert av containeren
resourcesobjectfalse-ressurskrav og -grenser
livenessobjectfalse-liveness probe
readinessobjectfalse-readiness probe
startupobjectfalse-startup probe
ingressPortnumberfalse-gjør at ingress-trafikk går til denne container-porten. Porten må også finnes i additionalPorts

Eksempel: examples/extraContainers.jsonnet

argokit.appAndObjects.application.extraContainer()

Bygger en ekstra container-spec uten å legge den til i applikasjonen. Nyttig sammen med withExtraContainers(containers).

Felles workload-hjelpere

Disse hjelperne finnes på både argokit.appAndObjects.application og argokit.appAndObjects.skipjob.

Metadata og pod-innstillinger

funksjonbeskrivelse
withCommand(command)setter spec.command
withLabels(labels)setter spec.labels
withTeam(team)setter spec.team
withPriority(priority)setter spec.priority til low, medium eller high
withAdditionalPort(name, port, protocol='TCP')legger til en oppføring i spec.additionalPorts
withPodSettings(...)setter spec.podSettings
withTracing(randomSamplingPercentage)setter sampling-prosent for Istio tracing

<workload>.resources.withRequests()

Setter ressurskrav.

navntypeobligatoriskstandardverdibeskrivelse
cpustring eller numberfalse-CPU-krav, f.eks. 100m, 0.5 eller 1
memorystring eller numberfalse-minnekrav, f.eks. 128Mi eller 1Gi

Eksempel: examples/appWithResources.jsonnet

<workload>.resources.withLimits()

Setter ressursgrenser.

navntypeobligatoriskstandardverdibeskrivelse
cpustring eller numberfalse-CPU-grense, f.eks. 500m, 1 eller 2.0
memorystring eller numberfalse-minnegrense, f.eks. 512Mi eller 2Gi

Eksempel: examples/appWithResources.jsonnet

Miljøvariabler

funksjonbeskrivelse
withEnvironmentVariable(name, value)legger til én statisk miljøvariabel
withEnvironmentVariables(pairs)legger til flere statiske miljøvariabler fra et objekt
withEnvironmentVariableFromSecret(name, secretRef, key=name)legger til én miljøvariabel fra en Secret-nøkkel
withEnvironmentVariablesFromSecret(secretName)legger til alle miljøvariabler fra en Secret

Eksempel: examples/environment.jsonnet

Tilgangspolicyer

funksjonbeskrivelse
withOutboundPostgres(host, ip)tillater utgående PostgreSQL-trafikk
withOutboundOracle(host, ip)tillater utgående Oracle-trafikk
withOutboundSsh(host, ip)tillater utgående SSH-trafikk
withOutboundLdaps(host, ip)tillater utgående LDAPS-trafikk
withOutboundHttp(host, portname='', port=443, protocol='')tillater utgående HTTP/HTTPS-trafikk
withOutboundSkipApp(appname, namespace='')tillater utgående trafikk til en annen SKIP Application
withInboundSkipApp(appname, namespace='')tillater inngående trafikk fra en annen SKIP Application

Eksempel: examples/accessPolicies.jsonnet

Prober

funksjonbeskrivelse
probe(path, port, failureThreshold=3, timeout=1, initialDelay=0)bygger et probe-objekt
withReadiness(probe)setter spec.readiness
withLiveness(probe)setter spec.liveness
withStartup(probe)setter spec.startup

Eksempel: examples/probes.jsonnet

withPrometheus()

Konfigurerer scraping av Prometheus-kompatible metrics.

navntypeobligatoriskstandardverdibeskrivelse
pathstringtrue-sti for metrics, f.eks. /metrics
portnumbertrue-port for metrics
allowAllMetricsbooleanfalsefalsehvis true, blir alle eksponerte metrics skrapet
scrapeIntervalstringfalse60sscrape-intervall, f.eks. 30s eller 1m; bruk tom string for å utelate feltet

Eksempel: examples/application-with-prometheus.jsonnet

GCP

funksjonbeskrivelse
withGcpServiceAccount(serviceAccount)setter Workload Identity service account under spec.gcp.auth
withCloudSqlProxy(connectionName, serviceAccount, ip, publicIP=null, version=null)konfigurerer Cloud SQL Auth Proxy under spec.gcp.cloudSqlProxy

ConfigMap-hjelpere

funksjonbeskrivelse
withConfigMapAsEnv(name, data, addHashToName=false)oppretter en ConfigMap og legger den til via spec.envFrom
withConfigMapAsMount(name, mountPath, data, addHashToName=false, defaultMode=null, subPath=null)oppretter en ConfigMap og monterer den som filer

Eksempel: examples/withConfigMap.jsonnet

ExternalSecret-hjelper

funksjonbeskrivelse
withEnvironmentVariablesFromExternalSecret(name, creationPolicy=null, secrets=[], allKeysFrom=[], secretStoreRef='gsm')oppretter en ExternalSecret og legger til miljøvariabler fra den resulterende Secret-en

Eksempel: examples/withExternalSecret.jsonnet

Mounts

funksjonbeskrivelse
withSecretAsMount(secretName, mountPath, defaultMode=null, subPath=null)monterer en eksisterende Secret som filer
withPersistentVolumeClaimAsMount(pvcName, mountPath, subPath=null)monterer en PVC
withEmptyDirAsMount(mountPath, emptyDir, subPath=null)monterer et emptyDir-volum

Eksempel: examples/mounts.jsonnet

Ekstra objekter

funksjonbeskrivelse
withObjects(objects)legger til ett objekt eller en liste med objekter i rendret List

Eksempel: examples/additionalObjects.jsonnet

Frittstående ressurser

argokit.routing.new()

Bygger et Routing-objekt.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på routing-objektet
hostnamestringtrue-hostname
redirectToHTTPSbooleanfalsetrueom trafikk skal videresendes til HTTPS

argokit.routing.withRoute()

Legger til en route i et Routing-objekt.

navntypeobligatoriskstandardverdibeskrivelse
pathPrefixstringtrue-route-prefix
targetAppstringtrue-mål-Application
rewriteUribooleantrue-om URI skal skrives om
portnumberfalsenullmålport

Eksempel: examples/routing.jsonnet

argokit.k8s.rolebinding.new()

Oppretter en RoleBinding-ressurs. Utvid den med enten withUsers() eller withNamespaceAdminGroup().

argokit.k8s.rolebinding.withUsers()

Legger til brukere som subjects.

navntypeobligatoriskstandardverdibeskrivelse
usersarraytrue-brukernavn

argokit.k8s.rolebinding.withNamespaceAdminGroup()

Legger til en namespace-admin-gruppe som subject.

navntypeobligatoriskstandardverdibeskrivelse
groupNamestringtrue-gruppenavn

Eksempel: examples/rolebinding.jsonnet

argokit.externalSecrets.secret.new()

Oppretter en ExternalSecret.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på secret
creationPolicystringfalsenullstyrer spec.target.creationPolicy; utelates når den er null
secretsarrayfalse[]oppføringer med toKey, fromSecret og valgfrie conversion-/metadata-felt
allKeysFromarrayfalse[]oppføringer med fromSecret for import av alle nøkler
secretStoreRefstringfalsegsmnavn på SecretStore

Enten secrets eller allKeysFrom må inneholde minst ett element.

argokit.externalSecrets.store.new()

Oppretter en ekstern SecretStore.

navntypeobligatoriskstandardverdibeskrivelse
namestringfalsegsmnavn på store
gcpProjectstringtrue-GCP prosjekt-ID

Eksempel: examples/externalSecrets.jsonnet

argokit.k8s.configMap.new()

Oppretter en ConfigMap.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på ConfigMap
dataobjecttrue-data i ConfigMap
addHashToNamebooleanfalsefalseom hash-suffiks skal legges til navnet

Eksempel: examples/configMap.jsonnet

argokit.azureAdApplication.new()

Oppretter en frittstående AzureADApplication-ressurs.

navntypeobligatoriskstandardverdibeskrivelse
namestringtrue-navn på AzureADApplication-ressursen
namespacestringfalse-namespace for ressursen
groupsarrayfalse[]Azure AD-grupper for claims
secretPrefixstringfalseazureadprefix for secret-navnet
allowAllUsersbooleanfalsefalseom alle brukere skal få tilgang
logoutUrlstringfalse-logout-URL
replyUrlsarrayfalse[]reply URLs
preAuthorizedApplicationsarrayfalse[]forhåndsautoriserte applikasjoner

Eksempel: examples/newAzureAdApplication.jsonnet

Ferdige komponenter

argokit.dbArchiveJob()

Oppretter en SKIPJob v1beta1 som tar PostgreSQL-dump og lagrer den i S3, sammen med ExternalSecrets for database- og S3-hemmeligheter.

navntypeobligatoriskstandardverdibeskrivelse
instanceNamestringtrue-navn på databaseinstansen og SKIPJob-ressursen
schedulestringtrue-cron-uttrykk for arkiveringsjobben
databaseIPstringtrue-IP-adresse til databasen
gcpS3CredentialsSecretstringtrue-navn på hemmelighet med S3-credentials
databaseNamestringtrue-databasen som skal arkiveres
archiveUserstringfalsepostgresdatabasebrukeren jobben kobler til med
serviceAccountstringfalsedummyaccount@iam.gserviceaccount.comGCP service account for Workload Identity
cloudsqlInstanceConnectionNamestringtrue-Cloud SQL connection name
portnumberfalse5432databaseport
S3Hoststringfalses3-rin.statkart.noS3-endepunkt
S3DestinationPathstringtrue-S3-sti der dumpen skal lagres
fullDumpbooleanfalsefalseom jobben også skal dumpe roller

Eksempel: examples/dbArchive.jsonnet