Skip to content

Commit 359f333

Browse files
committed
Makefile: sync with infra-template repo
1 parent d2e1b8f commit 359f333

File tree

6 files changed

+65
-28
lines changed

6 files changed

+65
-28
lines changed

.envrc

+1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then
22
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
33
fi
44

5+
source .envrc.fixes
56
source .envrc.secrets
67
use flake

.envrc.fixes

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Fixing macOS issue:
2+
# objc[33642]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called.
3+
# See: https://github.com/ansible/ansible/issues/49207
4+
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

.envrc.secrets

+4
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@ export VAULT_CLIENT_CERT=./ansible/files/vault-client-user.crt
33
export VAULT_CLIENT_KEY=./ansible/files/vault-client-user.key
44
export VAULT_ADDR=https://vault-api.infra.status.im:8200
55
export CONSUL_HTTP_TOKEN=$(pass services/consul/tokens/terraform)
6+
# Provide a script in your PATH matching this name to load the token.
7+
if command -v vault_token_provider >/dev/null; then
8+
export VAULT_TOKEN=$(vault_token_provider)
9+
fi

Makefile

+44-19
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,40 @@
1-
OS = $(strip $(shell uname -s))
1+
# Colors
2+
YLW = \033[1;33m
3+
RED = \033[0;31m
4+
GRN = \033[0;32m
5+
BLU = \033[0;34m
6+
BLD = \033[1m
7+
RST = \033[0m
28

3-
ifeq ($(OS),Darwin)
4-
ARCH = darwin_amd64
9+
OS = $(shell uname -s | tr A-Z a-z)
10+
ARCH = "${OS}-$(shell uname -m)"
11+
12+
ifeq ($(OS),darwin)
513
PROVISIONER_SHA1 = bd688a503f526beedaf6ef5d2dba1128051573b6
614
else
7-
ARCH = linux_amd64
8-
PROVISIONER_SHA1 = da9cdf019d8f860a6e417257d81b1b21aceba7b7
15+
PROVISIONER_SHA1 = 1cbdf2bafe9e968a039264a6d3e6b58a2d2576eb
916
endif
1017

1118
TF_PLUGINS_DIR = $(HOME)/.terraform.d/plugins
1219

1320
PROVISIONER_NAME = terraform-provisioner-ansible
14-
PROVISIONER_VERSION = v2.5.0
15-
PROVISIONER_ARCHIVE = $(PROVISIONER_NAME)-$(subst _,-,$(ARCH))_$(PROVISIONER_VERSION)
16-
PROVISIONER_URL = https://github.com/radekg/terraform-provisioner-ansible/releases/download/$(PROVISIONER_VERSION)/$(PROVISIONER_ARCHIVE)
17-
PROVISIONER_PATH = $(TF_PLUGINS_DIR)/$(ARCH)/$(PROVISIONER_NAME)_$(PROVISIONER_VERSION)
21+
PROVISIONER_VERSION = v2.5.1
22+
PROVISIONER_ARCHIVE = $(PROVISIONER_NAME)-$(ARCH)-$(PROVISIONER_VERSION)
23+
PROVISIONER_URL = https://github.com/status-im/terraform-provisioner-ansible/releases/download/$(PROVISIONER_VERSION)/$(PROVISIONER_ARCHIVE)
24+
PROVISIONER_PATH = $(TF_PLUGINS_DIR)/$(PROVISIONER_NAME)
1825

19-
all: roles-install install-provisioner secrets init-terraform
26+
all: roles-install install-provisioner secrets init-terraform checks
2027
@echo "Success!"
2128

2229
roles-install:
23-
ansible/roles.py --install
30+
@ansible/roles.py --install
2431

2532
roles-check:
26-
ansible/roles.py --check
33+
@ansible/roles.py --check || \
34+
echo -e '\n$(YLW)WARNING: Local role versions appear to be incorrect.$(RST)' >&2
2735

2836
roles-update:
29-
ansible/roles.py --update
37+
@ansible/roles.py --update
3038

3139
roles: roles-install roles-check
3240

@@ -47,13 +55,30 @@ secrets:
4755
pass services/vault/certs/client-user/cert > ansible/files/vault-client-user.crt
4856
pass services/vault/certs/client-user/privkey > ansible/files/vault-client-user.key
4957

50-
consul-token-check:
51-
ifndef CONSUL_HTTP_TOKEN
52-
$(error No CONSUL_HTTP_TOKEN env variable set!)
53-
endif
54-
55-
init-terraform: consul-token-check
58+
init-terraform: consul-check
5659
terraform init -upgrade=true
5760

5861
cleanup:
5962
rm -r $(TF_PLUGINS_DIR)/$(ARCHIVE)
63+
64+
consul-check:
65+
ifndef CONSUL_HTTP_TOKEN
66+
@echo -e "$(RED)$(BLD)ERROR: No CONSUL_HTTP_TOKEN env variable set!$(RST)"; exit 1
67+
endif
68+
69+
vault-check:
70+
ifndef VAULT_TOKEN
71+
@echo -e "$(RED)$(BLD)ERROR: No VAULT_TOKEN env variable set!$(RST)"; exit 1
72+
endif
73+
74+
DIRENV_LOADED ?= $(shell direnv status --json | jq .state.loadedRC.allowed)
75+
direnv-check:
76+
@if [[ "$(DIRENV_LOADED)" -ne 0 ]] && [[ -z "$${DIRENV_IN_ENVRC}" ]]; then \
77+
echo -e "$(YLW)WARNING: This repo assumes use of Direnv:$(RST)" \
78+
"$(BLD)"'eval "$$(direnv hook zsh)"; direnv allow'"$(RST)"; \
79+
fi
80+
81+
checks: roles-check direnv-check consul-check vault-check
82+
@echo -e "\n$(GRN)$(BLD)WELCOME BACK, COMMANDER$(RST)"
83+
84+
.PHONY = checks roles-check direnv-check consul-check vault-check

flake.lock

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
description = "infra-shell";
33

4-
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
4+
# bitwarden-cli has a build issue on macOS since 2024.8.0:
5+
# this commit fixes nixpkgs right before switching to 2024.8.0
6+
# https://github.com/NixOS/nixpkgs/issues/339576
7+
inputs.nixpkgs.url = "github:nixos/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62";
8+
#inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
59

610
outputs = { self, nixpkgs }:
711
let
@@ -15,8 +19,8 @@
1519
pkgs = pkgsFor.${system};
1620
in {
1721
default = let
18-
pythonPkgs = pkgs.python311.withPackages (
19-
_: with (pkgs.python311Packages); [
22+
pythonPkgs = pkgs.python3.withPackages (
23+
_: with (pkgs.python3Packages); [
2024
ipython pyyaml jinja2 PyGithub
2125
pyopenssl cryptography
2226
hvac
@@ -38,8 +42,7 @@
3842
];
3943

4044
shellHook = ''
41-
./ansible/roles.py --check || \
42-
echo -e '\nWARNING: Your role versions appear to be incorrect!' >&2
45+
make checks
4346
'';
4447
};
4548
});

0 commit comments

Comments
 (0)