The following attributes are available for modifying an Okctl environment
Metadata
Type: Object
accountId
requiredname
requiredregion
clusterRootDomain
requiredgithub
Type: Object
For Okctl to be able to setup ArgoCD correctly for you, it needs to know what repository on Github will contain your infrastructure.
repository
requiredorganization
Type: String
Default: oslokommune
The organization that owns the repository
outputPath
Type: String
Default: infrastructure
The folder to place infrastructure files
users
Type: List
Defines which users can access everything connected to Cognito. Applications connected to Cognito include: ArgoCD UI, Grafana.
Type: String
Example: olly@okctl.io
The email of the user to add as an admin of the Okctl environment.
integrations
Type: Object
argoCD
Type: Boolean
Default: True
ArgoCD is a service that watches a repository for Kubernetes charts and ensures the defined resources are running as declared in the cluster.
autoscaler
Type: Boolean
Default: True
Autoscaler automatically adjusts the size of pods and nodes in your cluster depending on load.
awsLoadBalancerController
Type: Boolean
Default: True
AWS Load Balancer Controller handles routing from the internet to your application running inside your Okctl Kubernetes cluster. If you want your applications and services accessible from the internet, this needs to be enabled.
blockstorage
Type: Boolean
Default: True
Block storage provides persistent storage for your cluster (Persistent Volumes).
cognito
Type: Boolean
Default: True
Cognito is an authentication provider that Okctl uses to control access to different resources, like ArgoCD and Grafana.
externalDNS
Type: Boolean
Default: True
External DNS handles defining the necessary DNS records required to route traffic to your defined service or application.
externalSecrets
Type: Boolean
Default: True
External Secrets fetches secrets from external sources and exposes them as native Kubernetes secrets inside the cluster.
kubePromStack
Type: Boolean
Default: True
KubePromStack enables Prometheus and Grafana for metrics.
promtail
Type: Boolean
Default: True
Promtail scrapes logs from pods and feeds them to Loki.
loki
Type: Boolean
Default: True
Loki collects logs and exposes them as a data source in Grafana.
tempo
Type: Boolean
Default: True
Tempo collects traces and exposes them as a data source in Grafana. Supports formats like jaeger, zipkin, open telemetry.
databases
Type: Object
postgres
Type: List of objects
name
Type: String
Example: okctl-db
Name defines the name of the database to provision.
namespace
Type: String
Example: Okctl
Namespace defines which namespace to place the database information in. There will be created a Kubernetes Secret containing the administrator credentials and a config map for connection details.
user
Type: String
Example: admin
User defines which admin user to provide for administrative operations.
vpc
Type: Object
Okctl creates a Virtual Private Cloud for you that organizes all the intended resources that require networking. A VPC is mandatory but can be configured by the following attributes.
cidr
Type: Boolean
Default: 192.168.0.0/20
CIDR defines the VPC IP range. Leave this be if you don't know what it is/does.
highAvailability
Type: Boolean
Default: true