Kvindo™ Cloud Docs


Language

GitLab Instance

A managed GitLab Instance is a self-hosted GitLab (Community or Enterprise edition) running on a dedicated VM: source control, CI/CD, container registry, and issue tracking. It is provisioned into a VPC subnet, gets a DNS record, and is optionally reachable at a Floating IP. Register one or more GitLab Runners to execute pipelines.

Key concepts

Edition & versioncommunity or enterprise (spec.edition) at a specific spec.version

DNS recordspec.recordName becomes <recordName>.<your-zone>; the instance's FQDN is reported in status.fqdn

Compute & storage — offer IDs size the VM (spec.vmOfferId) and data volume (spec.volumeOfferId, spec.volumeSizeGiB); GitLab is resource-hungry, so size up for real use

Custom ingress — serve GitLab behind your own hostname and TLS certificate (spec.customIngressConfiguration)

Secret push protection — reject pushes that contain secrets, with configurable patterns (spec.secretPushProtection)

Parameters
UI Name API / kc name Terraform name Optional Format Default Is read only Description
Tier spec.tier spec.tier No string standard No Reserved for future use — only standard is accepted today
Edition spec.edition spec.edition Yes string — community/enterprise community No GitLab edition
Version spec.version spec.version No string — GitLab version No bare package version, e.g. 17.5.1
Record name spec.recordName spec.record_name No string — DNS label No Served at <recordName>.<zone>
Root password spec.rootPassword spec.root_password No string (sensitive) No Initial password for the root user
VPC subnet spec.vpcSubnetId spec.vpc_subnet_id Yes ULID — references a VPC Subnet No Subnet the instance runs in
Floating IP spec.floatingIpId spec.floating_ip_id Yes ULID — references a Floating IP No Public address; omit for private-only access
VM offer spec.vmOfferId spec.vm_offer_id Yes string (≤32) — compute offer No VM compute offer
VM state spec.vmState spec.vm_state Yes string — running/stopped running No Desired power state
Volume offer spec.volumeOfferId spec.volume_offer_id No string (≤32) — disk offer No Data volume type
Volume size spec.volumeSizeGiB spec.volume_size_gib No integer — GiB No Data volume size
Custom ingress spec.customIngressConfiguration spec.custom_ingress_configuration Yes object No Serve behind your own hostname + certificate
Hostname customIngressConfiguration.hostname custom_ingress_configuration.hostname No string No The public hostname to serve GitLab at
Certificate customIngressConfiguration.certificateId custom_ingress_configuration.certificate_id No ULID — references a Certificate No TLS certificate for the hostname
Secret push protection spec.secretPushProtection spec.secret_push_protection Yes object No Reject pushes containing secrets
Enabled secretPushProtection.enabled secret_push_protection.enabled No boolean No Turn secret push protection on
Ignored repository paths secretPushProtection.ignoredRepositoriesPaths secret_push_protection.ignored_repositories_paths Yes list of string No Repository paths exempt from scanning
Regexp patterns secretPushProtection.regexpPatterns secret_push_protection.regexp_patterns Yes list of string No Extra regexes that flag a push as containing a secret
String-contains patterns secretPushProtection.stringContainsPatterns secret_push_protection.string_contains_patterns Yes list of string No Extra literal substrings that flag a push as containing a secret
FQDN status.fqdn status.fqdn string Yes Full DNS name of the instance
Public IPv4 status.publicIpV4 status.public_ipv4 string Yes Set when a Floating IP is attached
Public IPv6 status.publicIpV6 status.public_ipv6 string Yes Public IPv6. IPv6 is not yet implemented — reserved for future use
Private IPv4 status.privateIpV4 status.private_ipv4 string Yes Address on the VPC subnet
Private IPv6 status.privateIpV6 status.private_ipv6 string Yes Private IPv6. IPv6 is not yet implemented — reserved for future use
Examples

A Community-edition instance on an existing subnet, reachable at a Floating IP.

Terraform

Python SDK

kc CLI


Related pages

Resource docs

An unhandled error has occurred. Reload 🗙