ArgoKit v2 API
Denne referansen er organisert etter hvor API-et brukes:
| OmrÄde | Importsti | Brukes til |
|---|---|---|
| Application | argokit.appAndObjects.application | Skiperator Application-ressurser |
| SKIPJob | argokit.appAndObjects.skipjob | Skiperator SKIPJob-ressurser |
| Felles workload-hjelpere | argokit.appAndObjects.<workload> | hjelpere som finnes pÄ bÄde application og skipjob |
| FrittstÄende ressurser | argokit.k8s.*, argokit.routing, argokit.externalSecrets.*, argokit.azureAdApplication | Ressurser 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ applikasjonen |
image | string | true | - | container-image |
port | number | true | - | hovedport for containeren |
Eksempel: examples/application.jsonnet
argokit.appAndObjects.skipjob.new()â
Oppretter en Skiperator SKIPJob med API-versjon skiperator.kartverket.no/v1beta1.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ jobben |
image | string | true | - | 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
schedule | string | true | - | cron-uttrykk |
allowConcurrency | string | false | - | Allow, Forbid eller Replace |
startingDeadlineSeconds | number | false | - | frist i sekunder for Ă„ starte en forsinket jobb |
suspend | boolean | false | - | suspenderer cronjobben |
timeZone | string | false | Europe/Oslo | IANA-tidssone, f.eks. Etc/UTC |
argokit.appAndObjects.skipjob.withSettings()â
Setter Kubernetes Job-innstillinger under spec.job.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
activeDeadlineSeconds | number | false | - | maks kjĂžretid i sekunder |
backoffLimit | number | false | - | antall retry-forsĂžk fĂžr jobben regnes som feilet |
suspend | boolean | false | - | suspenderer jobben |
ttlSecondsAfterFinished | number | false | - | sekunder fĂžr ferdig jobb ryddes opp |
argokit.appAndObjects.skipjob.withRestartPolicy()â
Setter restart policy for jobben.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
restartPolicy | string | true | - | OnFailure eller Never |
Application-hjelpereâ
argokit.appAndObjects.application.withReplicas()â
Setter replikaer for en Application, eventuelt med autoskalering.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
initial | number | true | 2 | initialt antall replikaer |
max | number | false | - | maksimalt antall replikaer. Aktiverer autoskalering nÄr den er satt og ulik initial |
targetCpuUtilization | number | false | - | CPU-terskel i prosent |
targetMemoryUtilization | number | false | - | minne-terskel i prosent |
Eksempel: examples/replicas.jsonnet
argokit.appAndObjects.application.forHostnames()â
Oppretter ingress-oppfĂžringer for en Application.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
ingress | array, string eller object | true | - | 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
routingProvider | string | false | Legacy | hvilken 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ AzureADApplication-ressursen |
namespace | string | false | - | namespace for ressursen |
groups | array | false | [] | Azure AD-grupper for claims |
secretPrefix | string | false | azuread | prefix for secret-navnet |
allowAllUsers | boolean | false | false | om alle brukere skal fÄ tilgang |
logoutUrl | string | false | - | logout-URL |
replyUrls | array | false | [] | reply URLs |
preAuthorizedApplications | array | false | [] | forhÄndsautoriserte applikasjoner |
Eksempel: examples/withAzureAdApplication.jsonnet
argokit.appAndObjects.application.withExtraContainer()â
Legger til en ekstra container i podden for en Application.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | container-navn |
image | string | true | - | container-image |
type | string | false | standard | standard for vanlig sidecar, eller init for native sidecar init-container |
command | array | false | - | overstyrer container command |
args | array | false | - | argumenter til entrypoint |
env | array | false | - | miljĂžvariabler for containeren |
envFrom | array | false | - | miljĂžvariabler fra Secret eller ConfigMap |
filesFrom | array | false | - | filmounts for containeren |
additionalPorts | array | false | [] | porter eksponert av containeren |
resources | object | false | - | ressurskrav og -grenser |
liveness | object | false | - | liveness probe |
readiness | object | false | - | readiness probe |
startup | object | false | - | startup probe |
ingressPort | number | false | - | 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â
| funksjon | beskrivelse |
|---|---|
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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
cpu | string eller number | false | - | CPU-krav, f.eks. 100m, 0.5 eller 1 |
memory | string eller number | false | - | minnekrav, f.eks. 128Mi eller 1Gi |
Eksempel: examples/appWithResources.jsonnet
<workload>.resources.withLimits()â
Setter ressursgrenser.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
cpu | string eller number | false | - | CPU-grense, f.eks. 500m, 1 eller 2.0 |
memory | string eller number | false | - | minnegrense, f.eks. 512Mi eller 2Gi |
Eksempel: examples/appWithResources.jsonnet
MiljĂžvariablerâ
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
path | string | true | - | sti for metrics, f.eks. /metrics |
port | number | true | - | port for metrics |
allowAllMetrics | boolean | false | false | hvis true, blir alle eksponerte metrics skrapet |
scrapeInterval | string | false | 60s | scrape-intervall, f.eks. 30s eller 1m; bruk tom string for Ă„ utelate feltet |
Eksempel: examples/application-with-prometheus.jsonnet
GCPâ
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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â
| funksjon | beskrivelse |
|---|---|
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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ routing-objektet |
hostname | string | true | - | hostname |
redirectToHTTPS | boolean | false | true | om trafikk skal videresendes til HTTPS |
routingProvider | string | false | Legacy | Standard (anbefalt) bruker Kubernetes Gateway API. Legacy bruker Istio Gateway og VirtualService, og blir fjernet senere |
ownership | string | false | Standalone | Standalone 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
pathPrefix | string | true | - | route-prefix |
targetApp | string | true | - | mÄl-Application |
rewriteUri | boolean | true | - | om URI skal skrives om |
port | number | false | null | mÄ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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
users | array | true | - | brukernavn |
argokit.k8s.rolebinding.withNamespaceAdminGroup()â
Legger til en namespace-admin-gruppe som subject.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
groupName | string | true | - | gruppenavn |
Eksempel: examples/rolebinding.jsonnet
argokit.externalSecrets.secret.new()â
Oppretter en ExternalSecret.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ secret |
creationPolicy | string | false | null | styrer spec.target.creationPolicy; utelates nÄr den er null |
secrets | array | false | [] | oppfĂžringer med toKey, fromSecret og valgfrie conversion-/metadata-felt |
allKeysFrom | array | false | [] | oppfĂžringer med fromSecret for import av alle nĂžkler |
secretStoreRef | string | false | gsm | navn pÄ SecretStore |
Enten secrets eller allKeysFrom mÄ inneholde minst ett element.
argokit.externalSecrets.store.new()â
Oppretter en ekstern SecretStore.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | false | gsm | navn pÄ store |
gcpProject | string | true | - | GCP prosjekt-ID |
Eksempel: examples/externalSecrets.jsonnet
argokit.k8s.configMap.new()â
Oppretter en ConfigMap.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ ConfigMap |
data | object | true | - | data i ConfigMap |
addHashToName | boolean | false | false | om hash-suffiks skal legges til navnet |
Eksempel: examples/configMap.jsonnet
argokit.azureAdApplication.new()â
Oppretter en frittstÄende AzureADApplication-ressurs.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
name | string | true | - | navn pÄ AzureADApplication-ressursen |
namespace | string | false | - | namespace for ressursen |
groups | array | false | [] | Azure AD-grupper for claims |
secretPrefix | string | false | azuread | prefix for secret-navnet |
allowAllUsers | boolean | false | false | om alle brukere skal fÄ tilgang |
logoutUrl | string | false | - | logout-URL |
replyUrls | array | false | [] | reply URLs |
preAuthorizedApplications | array | false | [] | 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.
| navn | type | obligatorisk | standardverdi | beskrivelse |
|---|---|---|---|---|
instanceName | string | true | - | navn pÄ databaseinstansen og SKIPJob-ressursen |
schedule | string | true | - | cron-uttrykk for arkiveringsjobben |
databaseIP | string | true | - | IP-adresse til databasen |
gcpS3CredentialsSecret | string | true | - | navn pÄ hemmelighet med S3-credentials |
databaseName | string | true | - | databasen som skal arkiveres |
archiveUser | string | false | postgres | databasebrukeren jobben kobler til med |
serviceAccount | string | false | dummyaccount@iam.gserviceaccount.com | GCP service account for Workload Identity |
cloudsqlInstanceConnectionName | string | true | - | Cloud SQL connection name |
port | number | false | 5432 | databaseport |
S3Host | string | false | s3-rin.statkart.no | S3-endepunkt |
S3DestinationPath | string | true | - | S3-sti der dumpen skal lagres |
fullDump | boolean | false | false | om jobben ogsÄ skal dumpe roller |
Eksempel: examples/dbArchive.jsonnet