-
Notifications
You must be signed in to change notification settings - Fork 154
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* attempt to add cassandra Signed-off-by: Mritunjay <[email protected]> * cassandra fixes Signed-off-by: Mritunjay <[email protected]> * testing with new chanegs Signed-off-by: Mritunjay <[email protected]> * using cassandra -f Signed-off-by: Mritunjay <[email protected]> * adding workdir Signed-off-by: Mritunjay <[email protected]> * fixes in tests Signed-off-by: Mritunjay <[email protected]> * removes bash Signed-off-by: Mritunjay <[email protected]> * adds k8s manifest and tests Signed-off-by: Mritunjay <[email protected]> * terraform fmts Signed-off-by: Mritunjay <[email protected]> * fixes template file Signed-off-by: Mritunjay <[email protected]> * uses kubectl manifest Signed-off-by: Mritunjay <[email protected]> * uses stateful_set resource and makes k8s provider to root main tf Signed-off-by: Mritunjay <[email protected]> * testing with k8s provider in tests/main.tf Signed-off-by: Mritunjay <[email protected]> * refactors namespace and services Signed-off-by: Mritunjay <[email protected]> * removes readiness probe Signed-off-by: Mritunjay <[email protected]> * minor refactors Signed-off-by: Mritunjay <[email protected]> --------- Signed-off-by: Mritunjay <[email protected]>
- Loading branch information
1 parent
bcfcc4e
commit 4128e35
Showing
7 changed files
with
324 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<!--monopod:start--> | ||
# cassandra | ||
| | | | ||
| - | - | | ||
| **Status** | stable | | ||
| **OCI Reference** | `cgr.dev/chainguard/cassandra` | | ||
|
||
|
||
* [View Image in Chainguard Academy](https://edu.chainguard.dev/chainguard/chainguard-images/reference/cassandra/overview/) | ||
* [View Image Catalog](https://console.enforce.dev/images/catalog) for a full list of available tags. | ||
*[Contact Chainguard](https://www.chainguard.dev/chainguard-images) for enterprise support, SLAs, and access to older tags.* | ||
|
||
--- | ||
<!--monopod:end--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
contents: | ||
packages: | ||
- cassandra | ||
- python3 | ||
- busybox | ||
- cassandra-compat | ||
- bash | ||
accounts: | ||
groups: | ||
- groupname: cassandra | ||
gid: 999 | ||
users: | ||
- username: cassandra | ||
uid: 999 | ||
run-as: 999 | ||
|
||
work-dir: / | ||
|
||
entrypoint: | ||
command: cassandra -f | ||
environment: | ||
LANG: en_US.UTF-8 | ||
CASSANDRA_HOME: /opt/cassandra | ||
PATH: /usr/sbin:/sbin:/usr/bin:/bin:/opt/cassandra/bin/ | ||
|
||
paths: | ||
- path: /var/lib/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
- path: /opt/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
- path: /var/lib/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
- path: /var/log/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
versions: | ||
- apko: | ||
config: configs/latest.apko.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
terraform { | ||
required_providers { | ||
apko = { source = "chainguard-dev/apko" } | ||
} | ||
} | ||
|
||
variable "target_repository" { | ||
description = "The docker repo into which the image and attestations should be published." | ||
} | ||
|
||
module "latest" { | ||
source = "../../tflib/publisher" | ||
|
||
name = basename(path.module) | ||
|
||
target_repository = var.target_repository | ||
config = file("${path.module}/configs/latest.apko.yaml") | ||
} | ||
|
||
module "dev" { source = "../../tflib/dev-subvariant" } | ||
|
||
module "latest-dev" { | ||
source = "../../tflib/publisher" | ||
|
||
name = basename(path.module) | ||
|
||
target_repository = var.target_repository | ||
# Make the dev variant an explicit extension of the | ||
# locked original. | ||
config = jsonencode(module.latest.config) | ||
extra_packages = module.dev.extra_packages | ||
} | ||
|
||
module "version-tags" { | ||
source = "../../tflib/version-tags" | ||
package = "cassandra" | ||
config = module.latest.config | ||
} | ||
|
||
module "test-latest" { | ||
source = "./tests" | ||
digest = module.latest.image_ref | ||
} | ||
|
||
module "tagger" { | ||
source = "../../tflib/tagger" | ||
|
||
depends_on = [module.test-latest] | ||
|
||
tags = merge( | ||
{ for t in toset(concat(["latest"], module.version-tags.tag_list)) : t => module.latest.image_ref }, | ||
{ for t in toset(concat(["latest"], module.version-tags.tag_list)) : "${t}-dev" => module.latest-dev.image_ref }, | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
terraform { | ||
required_providers { | ||
oci = { source = "chainguard-dev/oci" } | ||
kubernetes = { | ||
source = "hashicorp/kubernetes" | ||
version = "~> 2.11.0" | ||
} | ||
} | ||
} | ||
|
||
variable "digest" { | ||
description = "The image digest to run tests over." | ||
} | ||
|
||
data "oci_string" "ref" { input = var.digest } | ||
|
||
resource "kubernetes_namespace" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
} | ||
} | ||
|
||
resource "kubernetes_service" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
namespace = "cassandra" | ||
|
||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
port { | ||
port = 9042 | ||
} | ||
|
||
selector = { | ||
app = "cassandra" | ||
} | ||
|
||
cluster_ip = "None" | ||
} | ||
} | ||
|
||
resource "kubernetes_stateful_set" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
namespace = kubernetes_namespace.cassandra.metadata[0].name | ||
|
||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
replicas = 1 | ||
|
||
selector { | ||
match_labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
template { | ||
metadata { | ||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
container { | ||
name = "cassandra" | ||
image = "${data.oci_string.ref.registry_repo}:${data.oci_string.ref.pseudo_tag}" | ||
|
||
port { | ||
name = "intra-node" | ||
container_port = 7000 | ||
} | ||
|
||
port { | ||
name = "tls-intra-node" | ||
container_port = 7001 | ||
} | ||
|
||
port { | ||
name = "jmx" | ||
container_port = 7199 | ||
} | ||
|
||
port { | ||
name = "cql" | ||
container_port = 9042 | ||
} | ||
|
||
env { | ||
name = "MAX_HEAP_SIZE" | ||
value = "512M" | ||
} | ||
|
||
env { | ||
name = "HEAP_NEWSIZE" | ||
value = "100M" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_SEEDS" | ||
value = "cassandra-0.cassandra.default.svc.cluster.local" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_CLUSTER_NAME" | ||
value = "K8Demo" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_DC" | ||
value = "DC1-K8Demo" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_RACK" | ||
value = "Rack1-K8Demo" | ||
} | ||
|
||
env { | ||
name = "POD_IP" | ||
|
||
value_from { | ||
field_ref { | ||
field_path = "status.podIP" | ||
} | ||
} | ||
} | ||
|
||
resources { | ||
limits = { | ||
cpu = "500m" | ||
|
||
memory = "1Gi" | ||
} | ||
|
||
requests = { | ||
cpu = "500m" | ||
|
||
memory = "1Gi" | ||
} | ||
} | ||
|
||
volume_mount { | ||
name = "cassandra-data" | ||
mount_path = "/cassandra_data" | ||
} | ||
|
||
lifecycle { | ||
pre_stop { | ||
exec { | ||
command = ["/bin/sh", "-c", "nodetool drain"] | ||
} | ||
} | ||
} | ||
|
||
image_pull_policy = "Always" | ||
|
||
security_context { | ||
capabilities { | ||
add = ["IPC_LOCK"] | ||
} | ||
} | ||
} | ||
|
||
termination_grace_period_seconds = 1800 | ||
} | ||
} | ||
|
||
volume_claim_template { | ||
metadata { | ||
name = "cassandra-data" | ||
} | ||
|
||
spec { | ||
access_modes = ["ReadWriteOnce"] | ||
|
||
resources { | ||
requests = { | ||
storage = "1Gi" | ||
} | ||
} | ||
|
||
storage_class_name = "standard" | ||
} | ||
} | ||
|
||
service_name = kubernetes_service.cassandra.metadata[0].name | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters