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 }

customCert er navnet pÄ et TLS-secret i namespacet istio-gateways. Denne secreten mÄ provisjoneres opp av SKIP-teamet pÄ forhÄnd.

Eksempel: examples/ingress.jsonnet

argokit.appAndObjects.application.withRoutingProvider()​

Velger hvilket routing-API Skiperator bruker for ingressene til en Application.

navntypeobligatoriskstandardverdibeskrivelse
routingProviderstringfalseLegacyhvilken mÄte som brukes for Ä konfigurere trafikk inn til applikasjonen

Bruk helst Standard. Legacy kommer til Ä bli deprecated og fjernet pÄ et senere tidspunkt.

application.new() setter alltid routingProvider i manifestet. Verdien er Legacy hvis du ikke kaller denne funksjonen.

NB: Standard stĂžtter ikke spec.istioSettings.retries.

Eksempel: examples/routingProvider.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
routingProviderstringfalseLegacyStandard (anbefalt) bruker Kubernetes Gateway API. Legacy bruker Istio Gateway og VirtualService, og blir fjernet senere
ownershipstringfalseStandaloneStandalone eier hele hostnavnet. Shared legger til paths pÄ et hostnavn som andre Routing-objekter kan bruke, f.eks. api.example.com.

For routingProvider, bruk helst Standard, da Legacy vil bli deprecated og fjernet pÄ et senere tidspunkt.

ownership=Shared krever routingProvider lik Standard. Shared kan ikke bruke et eget sertifikat i hostnavnet.

ownership=Standalone kan bruke et custom sertifikat. Skriv det som hostnavn+secret-navn. Secreten mÄ provisjoneres opp manuelt av SKIP.

Eksempel: examples/routingShared.jsonnet

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